diff --git a/lib/nconf/stores/env.js b/lib/nconf/stores/env.js index 27de753..8735733 100644 --- a/lib/nconf/stores/env.js +++ b/lib/nconf/stores/env.js @@ -21,9 +21,14 @@ var Env = exports.Env = function (options) { options = options || {}; this.type = 'env'; this.readOnly = true; - this.match = options.match this.whitelist = options.whitelist || []; this.separator = options.separator || ''; + + if (typeof options.match === 'function' + && typeof options !== 'string') { + this.match = options.match; + } + if (options instanceof Array) { this.whitelist = options; } @@ -57,7 +62,7 @@ Env.prototype.loadEnv = function () { return key.match(self.match) || self.whitelist.indexOf(key) !== -1 } else if (self.match) { - return key.match(self.match) + return key.match(self.match); } else { return !self.whitelist.length || self.whitelist.indexOf(key) !== -1 @@ -65,7 +70,8 @@ Env.prototype.loadEnv = function () { }).forEach(function (key) { if (self.separator) { self.set(common.key.apply(common, key.split(self.separator)), process.env[key]); - } else { + } + else { self.set(key, process.env[key]); } }); diff --git a/test/provider-test.js b/test/provider-test.js index 0805369..34e97f5 100644 --- a/test/provider-test.js +++ b/test/provider-test.js @@ -12,7 +12,7 @@ var assert = require('assert'), vows = require('vows'), helpers = require('./helpers'), nconf = require('../lib/nconf'); - + var fixturesDir = path.join(__dirname, 'fixtures'), mergeFixtures = path.join(fixturesDir, 'merge'), files = [path.join(mergeFixtures, 'file1.json'), path.join(mergeFixtures, 'file2.json')], @@ -123,7 +123,7 @@ vows.describe('nconf/provider').addBatch({ .add('file2', {type: 'file', file: files[1]}), "should respect the hierarchy": function(provider) { var merged = provider.load(); - + helpers.assertMerged(null, merged); assert.equal(merged.foo.bar, 'baz'); assert.equal(merged.candy.something, 'file1');