README
Node.js Custom Environment Variables Generator for config-Based Projects
This is a handy little utility that will generate JSON suitable for use as a config -based project's config/custom-environment-variables.json. (Note that throughout this project "cev" stands for "custom environment variables".)
NOTE: This package supercedes https://www.npmjs.com/package/config-cev-generator
See this blog post for full description and tips.
It really comes in handy when your configuration starts to get big and you forget to keep
your config/custom-environment-variables.json file in sync with the rest of your configuration.
NOTE: If you're using TypeScript, make sure
ts-nodeis on yourPATHand that you usecev-tsinstead ofcev.
Example
# cd into a config-based Node.js project...
$ npm install --save-dev @northscaler/config-custom-environment-variables-generator
$ npx cev
If your project's configuration is
{
"foo": {
"bar": "snafu",
"goo": "juju"
}
}
then the preceding command will generate JSON to stdout suitable for use as your project's config/custom-environment-variables.json:
{
"foo": {
"bar": "NODE_APP_FOO_BAR",
"goo": "NODE_APP_FOO_GOO"
}
}
In order to support config's __format feature, see the following example.
If your project's configuration is
{
"foo": {
"bar": 1,
"goo": 2
},
"snafu": "something"
}
then the following command will cause your configuration's foo.bar value to use format json and foo.goo to use number:
npx cev -k foo.bar=json -k foo.goo=number
The CLI writes to stdout by default. To save the output, just direct it to a file:
$ npx cev > config/custom-environment-variables.json
... or give the file as the sole positional argument:
$ npx cev config/custom-environment-variables.json
Prerequisites
The generator requires that your project have a valid config-based configuration in order to work properly.
Tips
- The default environment variable prefix is
NODE_APP. Customize with-por--prefix. - The default word separator is
_. Customize with-sor--separator. - Run
cev --helpfor more information.