1.0.1 • Published 9 years ago

json-configurator v1.0.1

Weekly downloads
196
License
MIT
Repository
github
Last release
9 years ago

Build Status

json-configurator

Configuration tool for loading json that contains environment variables and self references. It also supports variables which is deeply nested!! Prefix your environment variables with $ and postfix it with _ (se example). To reference to another variable inside the same json prefix it with <%= and postfix it with %>

I´ve added a CLI utility for this package.

Se examples:

var config = {
  apiEndpoint : 'https://test.com',
  $prod_apiEndpoint' : 'https://prod.com'
  $local_apiEndpoint' : 'http://localhost:8080'
  userEndpoint: '<%= apiEndpoint %>/users'
};

require('json-configurator')(configJson, process.env.STAGE ).userEndpoint;  // let say that STAGE === 'prod' 
// https://prod.com/users

require('json-configurator')(configJson, 'local').userEndpoint; 
// http://localhost:8080/users

require('json-configurator')(configJson, 'foobar').userEndpoint; 
//https://test.com/users

require('json-configurator')(configJson).userEndpoint; 
//https://test.com/users

Install

$ npm install --save json-configurator

Usage

var configJson = {
  'baseUrl': 'http://test.com',
  '$prod_baseUrl': 'https://prod.com',
  'endpoints': {
    'users': '<%= baseUrl %>/users',
	'accounts': '<%= baseUrl %>/accounts'
	},
  foo: 'bar',
  foobar: 'foobar',
  $prod_foo: 'foo in prod',
  $test_foo: 'foo in test',
  deep:{
    veryDeep: {
      publicKey: 'abc',
      secret: 'secret',
      $prod_secret: 'super secret'
    }
  }
};

var config = require('json-configurator')(configJson, 'prod');

console.log(config.deep.veryDeep.secret) 
// super secret

console.log(config.endpoints.users)
// https://prod.com/users

install CLI

$ npm install -g json-configurator

Usage CLI

First create a json file:

$ echo '{"a":111, "$prod_a":999}' > test.json

# with pipe	
$ cat test.json | json-configurator  // => {a:111}
$ cat test.json | json-configurator -e prod  // => { a: 999 }

# with argument
$ json-configurator  test.json // => {a:111}
$ json-configurator -e prod  test.json // => { a: 999 }

License

MIT © cmartin81

1.0.1

9 years ago

1.0.0

9 years ago

0.0.17

9 years ago

0.0.16

9 years ago

0.0.15

9 years ago

0.0.14

9 years ago

0.0.13

9 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago