de6d4beef9
* feat: Add option to specify default value to env var expansion * fix: remove unused capturing group for env var replacement Co-authored-by: Nicolas Giard <github@ngpixel.com>
30 lines
804 B
JavaScript
30 lines
804 B
JavaScript
'use strict'
|
|
|
|
const _ = require('lodash')
|
|
|
|
const isoDurationReg = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/
|
|
|
|
module.exports = {
|
|
/**
|
|
* Parse configuration value for environment vars
|
|
*
|
|
* Replaces `$(ENV_VAR_NAME)` with value of `ENV_VAR_NAME` environment variable.
|
|
*
|
|
* Also supports defaults by if provided as `$(ENV_VAR_NAME:default)`
|
|
*
|
|
* @param {any} cfg Configuration value
|
|
* @returns Parse configuration value
|
|
*/
|
|
parseConfigValue (cfg) {
|
|
return _.replace(
|
|
cfg,
|
|
/\$\(([A-Z0-9_]+)(?::(.+))?\)/g,
|
|
(fm, m, d) => { return process.env[m] || d }
|
|
)
|
|
},
|
|
|
|
isValidDurationString (val) {
|
|
return isoDurationReg.test(val)
|
|
}
|
|
}
|