Skip to content

Commit

Permalink
Merge 0a8a395 into 46ec97d
Browse files Browse the repository at this point in the history
  • Loading branch information
marcobiedermann committed Nov 1, 2017
2 parents 46ec97d + 0a8a395 commit 64040a3
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions lib/main.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
'use strict'

var fs = require('fs')
const fs = require('fs')

/*
* Parses a string or buffer into an object
* @param {(string|Buffer)} src - source to be parsed
* @returns {Object} keys and values from src
*/
function parse (src) {
var obj = {}
const obj = {}

// convert Buffers before splitting into lines and processing
src.toString().split('\n').forEach(function (line) {
src.toString().split('\n').forEach((line) => {
// matching "KEY' and 'VAL' in 'KEY=VAL'
var keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/)
const keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/)
// matched?
if (keyValueArr != null) {
var key = keyValueArr[1]
const key = keyValueArr[1]

// default undefined or missing values to empty string
var value = keyValueArr[2] || ''
let value = keyValueArr[2] || ''

// expand newlines in quoted values
var len = value ? value.length : 0
const len = value ? value.length : 0

if (len > 0 && value.charAt(0) === '"' && value.charAt(len - 1) === '"') {
value = value.replace(/\\n/gm, '\n')
}
Expand All @@ -45,23 +44,24 @@ function parse (src) {
* @returns {Object} parsed object or error
*/
function config (options) {
var path = '.env'
var encoding = 'utf8'
let path = '.env'
let encoding = 'utf8'

if (options) {
if (options.path) {
path = options.path
}

if (options.encoding) {
encoding = options.encoding
}
}

try {
// specifying an encoding returns a string instead of a buffer
var parsedObj = parse(fs.readFileSync(path, { encoding: encoding }))
const parsedObj = parse(fs.readFileSync(path, { encoding }))

Object.keys(parsedObj).forEach(function (key) {
Object.keys(parsedObj).forEach((key) => {
if (!process.env.hasOwnProperty(key)) {
process.env[key] = parsedObj[key]
}
Expand Down

0 comments on commit 64040a3

Please sign in to comment.