config 3.2.3 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/History.md CHANGED
@@ -1,3 +1,23 @@
1
+ 3.3.0 / 2020-02-26
2
+ ==================
3
+
4
+ * Allow all defined values in `substituteDeep` - @fostyfost
5
+
6
+ 3.2.6 / 2020-02-21
7
+ ==================
8
+
9
+ * Updated copyright date ranges
10
+
11
+ 3.2.5 / 2020-01-16
12
+ ==================
13
+
14
+ * Fixed issue with getCustomEnvVars and multiple config dirs #585 - @dekelev
15
+
16
+ 3.2.4 / 2019-10-25
17
+ ==================
18
+
19
+ * Improved error handling of env variables value parse - @leonardovillela
20
+
1
21
  3.2.3 / 2019-10-03
2
22
  ==================
3
23
 
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright 2010-2018, Loren West and other contributors
1
+ // Copyright 2010-2020, Loren West and other contributors
2
2
 
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to
package/README.md CHANGED
@@ -126,7 +126,7 @@ Articles
126
126
 
127
127
  Further Information
128
128
  ---------------------
129
- If you still don't see what you are looking for, here more resources to check:
129
+ If you still don't see what you are looking for, here are some more resources to check:
130
130
 
131
131
  * The [wiki may have more pages](https://github.com/lorenwest/node-config/wiki) which are not directly linked from here.
132
132
  * Review [questions tagged with node-config](https://stackexchange.com/filters/207096/node-config) on StackExchange. These are monitored by `node-config` contributors.
@@ -147,23 +147,23 @@ Contributors
147
147
  <td><img src=https://avatars2.githubusercontent.com/u/1656140?v=4><a href="https://github.com/eheikes">eheikes</a></td>
148
148
  <td><img src=https://avatars3.githubusercontent.com/u/138707?v=4><a href="https://github.com/th507">th507</a></td>
149
149
  </tr><tr><td><img src=https://avatars2.githubusercontent.com/u/506460?v=4><a href="https://github.com/Osterjour">Osterjour</a></td>
150
+ <td><img src=https://avatars3.githubusercontent.com/u/1751645?v=4><a href="https://github.com/cunneen">cunneen</a></td>
150
151
  <td><img src=https://avatars0.githubusercontent.com/u/842998?v=4><a href="https://github.com/nsabovic">nsabovic</a></td>
151
152
  <td><img src=https://avatars0.githubusercontent.com/u/5138570?v=4><a href="https://github.com/BadgerBadgerBadgerBadger">BadgerBadgerBadgerBadger</a></td>
152
153
  <td><img src=https://avatars2.githubusercontent.com/u/2529835?v=4><a href="https://github.com/simon-scherzinger">simon-scherzinger</a></td>
153
- <td><img src=https://avatars1.githubusercontent.com/u/175627?v=4><a href="https://github.com/axelhzf">axelhzf</a></td>
154
+ <td><img src=https://avatars3.githubusercontent.com/u/8650543?v=4><a href="https://github.com/leonardovillela">leonardovillela</a></td>
155
+ </tr><tr><td><img src=https://avatars1.githubusercontent.com/u/175627?v=4><a href="https://github.com/axelhzf">axelhzf</a></td>
154
156
  <td><img src=https://avatars3.githubusercontent.com/u/7782055?v=4><a href="https://github.com/benkroeger">benkroeger</a></td>
155
- </tr><tr><td><img src=https://avatars3.githubusercontent.com/u/1872824?v=4><a href="https://github.com/fgheorghe">fgheorghe</a></td>
157
+ <td><img src=https://avatars3.githubusercontent.com/u/1872824?v=4><a href="https://github.com/fgheorghe">fgheorghe</a></td>
156
158
  <td><img src=https://avatars3.githubusercontent.com/u/1443067?v=4><a href="https://github.com/IvanVergiliev">IvanVergiliev</a></td>
157
159
  <td><img src=https://avatars0.githubusercontent.com/u/1736957?v=4><a href="https://github.com/jpwilliams">jpwilliams</a></td>
158
160
  <td><img src=https://avatars2.githubusercontent.com/u/1246875?v=4><a href="https://github.com/jaylynch">jaylynch</a></td>
159
- <td><img src=https://avatars1.githubusercontent.com/u/145742?v=4><a href="https://github.com/jberrisch">jberrisch</a></td>
161
+ </tr><tr><td><img src=https://avatars1.githubusercontent.com/u/145742?v=4><a href="https://github.com/jberrisch">jberrisch</a></td>
160
162
  <td><img src=https://avatars1.githubusercontent.com/u/9355665?v=4><a href="https://github.com/kgoerlitz">kgoerlitz</a></td>
161
- </tr><tr><td><img src=https://avatars0.githubusercontent.com/u/8525267?v=4><a href="https://github.com/bertho-zero">bertho-zero</a></td>
162
- <td><img src=https://avatars3.githubusercontent.com/u/8650543?v=4><a href="https://github.com/leonardovillela">leonardovillela</a></td>
163
+ <td><img src=https://avatars0.githubusercontent.com/u/8525267?v=4><a href="https://github.com/bertho-zero">bertho-zero</a></td>
163
164
  <td><img src=https://avatars3.githubusercontent.com/u/1918551?v=4><a href="https://github.com/nitzan-shaked">nitzan-shaked</a></td>
164
165
  <td><img src=https://avatars3.githubusercontent.com/u/3058150?v=4><a href="https://github.com/robertrossmann">robertrossmann</a></td>
165
166
  <td><img src=https://avatars2.githubusercontent.com/u/498929?v=4><a href="https://github.com/roncli">roncli</a></td>
166
- <td><img src=https://avatars2.githubusercontent.com/u/1355559?v=4><a href="https://github.com/superoven">superoven</a></td>
167
167
  </tr></table>
168
168
 
169
169
  License
@@ -171,6 +171,6 @@ License
171
171
 
172
172
  May be freely distributed under the [MIT license](https://raw.githubusercontent.com/lorenwest/node-config/master/LICENSE).
173
173
 
174
- Copyright (c) 2010-2018 Loren West
174
+ Copyright (c) 2010-2020 Loren West
175
175
  [and other contributors](https://github.com/lorenwest/node-config/graphs/contributors)
176
176
 
package/lib/config.js CHANGED
@@ -1,4 +1,4 @@
1
- // config.js (c) 2010-2015 Loren West and other contributors
1
+ // config.js (c) 2010-2020 Loren West and other contributors
2
2
  // May be freely distributed under the MIT license.
3
3
  // For further details and documentation:
4
4
  // http://lorenwest.github.com/node-config
@@ -1033,13 +1033,18 @@ util.substituteDeep = function (substitutionMap, variables) {
1033
1033
  for (var prop in map) {
1034
1034
  var value = map[prop];
1035
1035
  if (typeof(value) === 'string') { // We found a leaf variable name
1036
- if (vars[value]) { // if the vars provide a value set the value in the result map
1036
+ if (vars[value] !== undefined) { // if the vars provide a value set the value in the result map
1037
1037
  util.setPath(result, pathTo.concat(prop), vars[value]);
1038
1038
  }
1039
1039
  }
1040
1040
  else if (util.isObject(value)) { // work on the subtree, giving it a clone of the pathTo
1041
- if('__name' in value && '__format' in value && vars[value.__name]) {
1042
- var parsedValue = util.parseString(vars[value.__name], value.__format);
1041
+ if ('__name' in value && '__format' in value && vars[value.__name] !== undefined) {
1042
+ try {
1043
+ var parsedValue = util.parseString(vars[value.__name], value.__format);
1044
+ } catch(err) {
1045
+ err.message = '__format parser error in ' + value.__name + ': ' + err.message;
1046
+ throw err;
1047
+ }
1043
1048
  util.setPath(result, pathTo.concat(prop), parsedValue);
1044
1049
  } else {
1045
1050
  _substituteVars(value, vars, pathTo.concat(prop));
@@ -1068,8 +1073,13 @@ util.substituteDeep = function (substitutionMap, variables) {
1068
1073
  */
1069
1074
  util.getCustomEnvVars = function (CONFIG_DIR, extNames) {
1070
1075
  var result = {};
1076
+ var resolutionIndex = 1;
1077
+ var allowedFiles = {};
1071
1078
  extNames.forEach(function (extName) {
1072
- var fullFilename = Path.join(CONFIG_DIR , 'custom-environment-variables' + '.' + extName);
1079
+ allowedFiles['custom-environment-variables' + '.' + extName] = resolutionIndex++;
1080
+ });
1081
+ var locatedFiles = util.locateMatchingFiles(CONFIG_DIR, allowedFiles);
1082
+ locatedFiles.forEach(function (fullFilename) {
1073
1083
  var configObj = util.parseFile(fullFilename);
1074
1084
  if (configObj) {
1075
1085
  var environmentSubstitutions = util.substituteDeep(configObj, process.env);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "config",
3
- "version": "3.2.3",
3
+ "version": "3.3.0",
4
4
  "main": "./lib/config.js",
5
5
  "description": "Configuration control for production node deployments",
6
6
  "author": "Loren West <open_source@lorenwest.com>",