UNPKG

@northscaler/config-custom-environment-variables-generator

Version:

Generator of config/custom-environment-variables.json File for config-Based Projects

72 lines (57 loc) 2.37 kB
# 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`](https://www.npmjs.com/package/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](https://www.npmjs.com/package/config-cev-generator) See [this blog post](http://www.scispike.com/blog/get-rid-of-node-js-config-grunt-work) 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-node` is on your `PATH` and that you use `cev-ts` instead of `cev`. ## 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 `-p` or `--prefix`. - The default word separator is `_`. Customize with `-s` or `--separator`. - Run `cev --help` for more information.