1.0.1 • Published 8 years ago

json-configurator v1.0.1

Weekly downloads
196
License
MIT
Repository
github
Last release
8 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

8 years ago

1.0.0

8 years ago

0.0.17

8 years ago

0.0.16

8 years ago

0.0.15

8 years ago

0.0.14

8 years ago

0.0.13

8 years ago

0.0.12

8 years ago

0.0.11

9 years ago

0.0.10

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago