0.1.2 • Published 9 years ago

json-compile v0.1.2

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

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.

PropertyNecessaryTypeDescription
basedirnostringPath to directory, where to find for relatively given path.
loadernoFunctionLoader for output references. Default uses fs module. Has signature (path, callback), where callback is callback(err, contents)
mergenobooleanMerge 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.