From c73a874f52bce7cfb48a81ae789df31c016f2b0b Mon Sep 17 00:00:00 2001 From: Albin Ekblom Date: Thu, 15 Feb 2018 00:37:23 +0100 Subject: [PATCH 1/2] Use parse-key-value-pair library --- lib/main.js | 22 ++++------------------ package.json | 4 +++- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/lib/main.js b/lib/main.js index 1f0df927..7359571b 100644 --- a/lib/main.js +++ b/lib/main.js @@ -2,6 +2,7 @@ const fs = require('fs') const path = require('path') +const parseKeyValue = require('parse-key-value-pair') /* * Parses a string or buffer into an object @@ -14,24 +15,9 @@ 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' - const keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/) - // matched? - if (keyValueArr != null) { - const key = keyValueArr[1] - - // default undefined or missing values to empty string - let value = keyValueArr[2] || '' - - // expand newlines in quoted values - const len = value ? value.length : 0 - if (len > 0 && value.charAt(0) === '"' && value.charAt(len - 1) === '"') { - value = value.replace(/\\n/gm, '\n') - } - - // remove any surrounding quotes and extra spaces - value = value.replace(/(^['"]|['"]$)/g, '').trim() - - obj[key] = value + const pair = parseKeyValue(line.trim(), { ignoreMalformed: true }) + if (pair) { + obj[pair[0]] = pair[1] } }) diff --git a/package.json b/package.json index 104d4154..3ce89fe6 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,9 @@ "standard": "8.4.0", "standard-markdown": "2.2.0" }, - "dependencies": {}, + "dependencies": { + "parse-key-value-pair": "^1.1.0" + }, "engines": { "node": ">=4.6.0" } From f4ecc1a537ba3da9215d8f3d710af158077f1985 Mon Sep 17 00:00:00 2001 From: Albin Ekblom Date: Thu, 15 Feb 2018 11:08:34 +0100 Subject: [PATCH 2/2] Remove unnecessary .trim() --- lib/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index 7359571b..9dd652e4 100644 --- a/lib/main.js +++ b/lib/main.js @@ -15,7 +15,7 @@ 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' - const pair = parseKeyValue(line.trim(), { ignoreMalformed: true }) + const pair = parseKeyValue(line, { ignoreMalformed: true }) if (pair) { obj[pair[0]] = pair[1] }