Configurator.ts
Allows to create and manage configuration files in your project. You can use gulp-config-parameters plugin to automate how your configuration is created and managed.
Installation
-
Install module:
npm install configurator.ts --save
-
Use typings to install all required definition dependencies.
typings install
-
ES6 features are used, so you may want to install es6-shim too:
npm install es6-shim --save
if you are building nodejs app, you may want to
require("es6-shim");
in your app. or if you are building web app, you man want to add<script src="path-to-shim/es6-shim.js">
on your page.
Usage
Create your configuration file, lets say ./config.json
:
Then register your configuration file in configurator and use it to get your configuration properties:
; defaultConfigurator;console; // prints: factory name: BMWconsole; // prints: show engine info?: trueconsole; // prints: car engine: [Object object]
If you have separate parameters file you can use it this way:
Lets say you have created ./parameters.json
And your ./config.json
is like this:
Now you can use configuration (with replaced parameters) this way:
; defaultConfigurator;defaultConfigurator;console; // prints: factory name: BMWconsole; // prints: show engine info?: trueconsole; // prints: car engine: [Object object]
This allows you to create a common configuration file for your app, and use different parameters on different platforms. You can use gulp-config-parameters plugin to automate this process.
typedi you can inject your configuration in your classes
If you are using;;; @ private factoryName: string; private showEngineInfo: boolean; { thisfactoryName = factoryName; // gives you "BMW" thisshowEngineInfo = showEngineInfo; // gives you "true" }
You can also inject right to the properties:
;;; @ @ factoryName: string; // value is "BMW" @ showEngineInfo: boolean; // value is "true"
Samples
Take a look on samples in ./sample for more examples of usage.
Todos
- cover with tests
- more documentation and samples