configorama 0.6.3 → 0.6.4
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/package.json +1 -1
- package/src/index.js +9 -4
- package/src/main.js +21 -20
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const Configorama = require('./main')
|
|
2
2
|
const parsers = require('./parsers')
|
|
3
|
-
const forceSync = require('sync-rpc')
|
|
4
3
|
|
|
5
4
|
module.exports.Configorama = Configorama
|
|
6
5
|
|
|
@@ -23,12 +22,18 @@ module.exports = async (configPathOrObject, settings = {}) => {
|
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
module.exports.sync = (configPathOrObject, settings = {}) => {
|
|
26
|
-
|
|
25
|
+
const _settings = settings || {}
|
|
26
|
+
if (_settings.dynamicArgs && typeof _settings.dynamicArgs === 'function') {
|
|
27
27
|
throw new Error('Dynamic args must be serializable value for sync usage. Use Async instead')
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
if (!_settings.options) {
|
|
30
|
+
const cliArgs = require('minimist')(process.argv.slice(2))
|
|
31
|
+
_settings.options = cliArgs
|
|
32
|
+
}
|
|
33
|
+
const forceSync = require('sync-rpc')
|
|
34
|
+
return forceSync(require.resolve('./sync'), _settings.variableSources)({
|
|
30
35
|
filePath: configPathOrObject,
|
|
31
|
-
settings:
|
|
36
|
+
settings: _settings
|
|
32
37
|
})
|
|
33
38
|
}
|
|
34
39
|
|
package/src/main.js
CHANGED
|
@@ -164,26 +164,6 @@ class Configorama {
|
|
|
164
164
|
this.originalString = fileContents
|
|
165
165
|
// Keep a copy
|
|
166
166
|
this.originalConfig = cloneDeep(configObject)
|
|
167
|
-
|
|
168
|
-
const useDotEnv = this.originalConfig.useDotenv || this.originalConfig.useDotEnv
|
|
169
|
-
if ((useDotEnv && useDotEnv === true) || this.opts.useDotEnvFiles) {
|
|
170
|
-
const loadStageEnv = require('env-stage-loader')
|
|
171
|
-
let providerStage
|
|
172
|
-
if (this.originalConfig && this.originalConfig.provider && this.originalConfig.provider.stage) {
|
|
173
|
-
providerStage = this.originalConfig.provider.stage
|
|
174
|
-
// @TODO check value to see if variable and needs pre-resolving to resolve stage vars
|
|
175
|
-
}
|
|
176
|
-
const stage = this.opts.stage || providerStage || 'dev'
|
|
177
|
-
/* Load env variables into process.env */
|
|
178
|
-
const values = loadStageEnv({
|
|
179
|
-
// silent: true,
|
|
180
|
-
// debug: true,
|
|
181
|
-
env: stage,
|
|
182
|
-
// defaultEnv: 'prod',
|
|
183
|
-
// ignoreFiles: ['.env']
|
|
184
|
-
})
|
|
185
|
-
}
|
|
186
|
-
|
|
187
167
|
// Set configPath for file references
|
|
188
168
|
this.configPath = fileDirectory
|
|
189
169
|
}
|
|
@@ -697,6 +677,27 @@ class Configorama {
|
|
|
697
677
|
return Promise.resolve(originalConfig)
|
|
698
678
|
}
|
|
699
679
|
|
|
680
|
+
const useDotEnv = this.originalConfig.useDotenv || this.originalConfig.useDotEnv
|
|
681
|
+
if ((useDotEnv && useDotEnv === true) || this.opts.useDotEnvFiles) {
|
|
682
|
+
let providerStage
|
|
683
|
+
/* has hardcoded stage */
|
|
684
|
+
if (
|
|
685
|
+
this.originalConfig && this.originalConfig.provider &&
|
|
686
|
+
this.originalConfig.provider.stage && !this.originalConfig.provider.stage.match(this.variableSyntax)
|
|
687
|
+
) {
|
|
688
|
+
providerStage = this.originalConfig.provider.stage
|
|
689
|
+
}
|
|
690
|
+
const stage = cliOpts.stage || providerStage || process.env.NODE_ENV || 'dev'
|
|
691
|
+
/* Load env variables into process.env */
|
|
692
|
+
const values = require('env-stage-loader')({
|
|
693
|
+
// silent: true,
|
|
694
|
+
// debug: true,
|
|
695
|
+
env: stage,
|
|
696
|
+
// defaultEnv: 'prod',
|
|
697
|
+
// ignoreFiles: ['.env']
|
|
698
|
+
})
|
|
699
|
+
}
|
|
700
|
+
|
|
700
701
|
/* Parse variables */
|
|
701
702
|
return this.initialCall(() => {
|
|
702
703
|
return Promise.resolve()
|