From 14d6beb867c59190e98c273600d8c359c82e559f Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Mon, 30 Jan 2017 21:10:47 -0500 Subject: [PATCH] Parse lines beginning with "export" --- lib/main.js | 6 +++--- test/.env | 1 + test/main.js | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/main.js b/lib/main.js index eb96e7fd..beb6f0ab 100644 --- a/lib/main.js +++ b/lib/main.js @@ -13,13 +13,13 @@ function parse (src) { // convert Buffers before splitting into lines and processing src.toString().split('\n').forEach(function (line) { // matching "KEY' and 'VAL' in 'KEY=VAL' - var keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/) + var keyValueArr = line.match(/^(export\s)?\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/) // matched? if (keyValueArr != null) { - var key = keyValueArr[1] + var key = keyValueArr[2] // default undefined or missing values to empty string - var value = keyValueArr[2] ? keyValueArr[2] : '' + var value = keyValueArr[3] ? keyValueArr[3] : '' // expand newlines in quoted values var len = value ? value.length : 0 diff --git a/test/.env b/test/.env index dde822f5..2bffc166 100644 --- a/test/.env +++ b/test/.env @@ -16,3 +16,4 @@ RETAIN_INNER_QUOTES={"foo": "bar"} RETAIN_INNER_QUOTES_AS_STRING='{"foo": "bar"}' INCLUDE_SPACE=some spaced out string USERNAME="therealnerdybeast@example.tld" +export EXPORTED=true diff --git a/test/main.js b/test/main.js index 7d6c3cf1..587396c2 100644 --- a/test/main.js +++ b/test/main.js @@ -150,6 +150,11 @@ describe('dotenv', function () { done() }) + it('includes export lines', function (done) { + parsed.should.have.property('EXPORTED') + done() + }) + it('respects equals signs in values', function (done) { parsed.EQUAL_SIGNS.should.eql('equals==') done()