@rxstack/configuration
v0.8.0
Published
RxStack Configuration Component
Downloads
78
Readme
The RxStack Configuration
The Configuration component allows you to load different configuration files depending on node environment.
Installation
npm install @rxstack/configuration --save
Documentation
The configuration.initialize()
takes up to two options:
Path to environment folder directory:
configuration.initialize(process.env.AP_DIR + '/dist/src/configs')
.Files are named
environment.ts
orenvironment.testing.ts
. You can change the nameconfiguration.initialize(path_to_dir, 'config')
then it will becomeconfig.ts
First you need to create environment.ts
in the /src/environments
folder.
Let’s say we want to load different file in production environment
then we need to create a new file /src/environments/environment.production.ts
.
The production environment will inherit all configurations from environment.ts
.
Under the hood it uses lodash _.mergeWith
to overwrite configurations.
Example
In environments/environment.ts
we want to use the local development environment:
export const environment = {
"host": "localhost",
"port": 3000,
"mongodb": "mongodb://localhost:27017/myapp",
};
In environments/environment.production.ts
we are going to use environment variables:
export const environment = {
"host": "MONGO_HOST",
"port": "MONGO_PORT",
"mongodb": "MONGOHQ_URL",
};
Now it can be used in our app.ts
like this:
import {configuration} from '@rxstack/configuration';
configuration.initialize('./environments');
import {environment} from './environments/environment';
// in development it will return localhost
environment.host
Variable types
@rxstack/configuration
uses the following variable mechanisms:
- If the value is a valid environment variable (e.v. NODE_ENV), use its value instead
- If the value starts with
./
or../
turn it into an absolute path relative to the application root path
Root path
You get get root path of your application: configuration.getRootPath()
License
Licensed under the MIT license.