From c540a1a002e4d317bd7562aeeb510708e5685d7f Mon Sep 17 00:00:00 2001 From: orthagonal Date: Thu, 11 Oct 2018 18:41:54 +0000 Subject: [PATCH] truthyEnv --- lib/confi.js | 2 ++ lib/truthyEnv.js | 7 +++++++ test/test-helpers.js | 23 ++++++++++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 lib/truthyEnv.js diff --git a/lib/confi.js b/lib/confi.js index 2d05aac..698aef8 100644 --- a/lib/confi.js +++ b/lib/confi.js @@ -11,6 +11,7 @@ const parseDir = require('parse-dir'); const ms = require('ms'); const envExists = require('./exists'); const truthy = require('./truthy.js'); +const truthyEnv = require('./truthyEnv.js'); const readFile = require('./readFile'); const getEnvOrFile = require('./getEnvOrFile'); const getEnv = require('./getEnv'); @@ -82,6 +83,7 @@ const load = async(options) => { envExists, ms, truthy, + truthyEnv, readFile, getEnvOrFile, getEnv, diff --git a/lib/truthyEnv.js b/lib/truthyEnv.js new file mode 100644 index 0000000..dc385eb --- /dev/null +++ b/lib/truthyEnv.js @@ -0,0 +1,7 @@ +module.exports = function(val, defaultVal = false) { + const result = process.env[val]; + if (result === undefined || result === null) { + return defaultVal; + } + return (result === '1' || result === true || result === 'true'); +}; diff --git a/test/test-helpers.js b/test/test-helpers.js index 07dae23..c5407c7 100644 --- a/test/test-helpers.js +++ b/test/test-helpers.js @@ -4,7 +4,6 @@ const confi = require('../'); const path = require('path'); //t.runOnly = true; - t.test('envExists helper', async (assert) => { process.env.TEST_VARIABLE = 'a test variable'; process.env.TEST_VARIABLE2 = 1; @@ -224,3 +223,25 @@ t.test('hasValue helper', async (assert) => { }); assert.end(); }); + +t.test('includes truthyEnv helper', async (assert) => { + process.env.VAR1 = '1'; + process.env.VAR2 = 'true'; + process.env.VAR3 = true; + process.env.VAR4 = 'false'; + const config = await confi({ + config: { + var1: '{{truthyEnv("VAR1", false)}}', + var2: '{{truthyEnv("VAR2", false)}}', + var3: '{{truthyEnv("VAR3", false)}}', + var4: '{{truthyEnv("VAR4", false)}}', + undef: '{{truthyEnv("UNDEF", "not defined")}}', + } + }); + assert.equal(config.var1, true); + assert.equal(config.var2, true); + assert.equal(config.var3, true); + assert.equal(config.var4, false); + assert.equal(config.undef, 'not defined'); + assert.end(); +});