json-compile

0.1.2 • Public • Published

json-compile

npm version Build Status

Compiles references in given json file into single structure

Overview

Its about simple inheritance of json configs in your applications. It simply finds out all $ref keys inside given file and replaces them with referenced values. First will be replaced outer references (to outer files), second - inner references (in started with # symbol).

Example

Imagine you have base config and his extension.

// inside /dir/base/extension.json
{
    "$ref": "../base.json",
    "host": "127.0.0.1",
    "port": "8080"
}
 
// inside /dir/base.json
{
    "name": "json-compile"
}

Inside your program you could get compiled config with json-compile module:

// inside your program
var compile = require("json-compile"),
    path    = require("path");
 
compile(path.resolve(__dirname, "./dir/base/extension.json"), function(err, config) {
    console.log(typeof config); // object
    console.log(config); // { "host": "127.0.0.1", "port": "8080", "name": "json-compile" }
});

API

compile(file, [options], [callback])

file

Type: String

Path to input json. Could be absolute, or relative. If relative - then basedir property in options must be set.

options

Type: Object

Options.

Property Necessary Type Description
[basedir] no string Path to directory, where to find for relatively given path.
[loader] no Function Loader for output references. Default uses fs module. Has signature (path, callback), where callback is callback(err, contents)
[merge] no boolean Merge or not properties, if they are Object. Default to true.

callback

Has signature (err, result) where err could be a null or instance of Error, and result is an Object with compiled json.

Package Sidebar

Install

npm i json-compile

Weekly Downloads

1

Version

0.1.2

License

MIT

Last publish

Collaborators

  • gobwas