1.0.1 • Published 6 years ago

ref-parser v1.0.1

Weekly downloads
7
License
MIT
Repository
github
Last release
6 years ago

Ref-parser

install

npm i --save ref-parser

Usage

const refParser = require('ref-parser')();

var obj = {
    refA: "valueA",
    refB: "%refA%"
};

refParser.parse(obj);

expect(obj).to.deep.equals({
    refA: "valueA",
    refB: "valueA"
}); // === TRUE

## Options

const refParser = require('ref-parser')({
    referenceCharKey: "=",  // Default is %
    recursive: true,       
    global: {
        env: process.env
    },                      // Merged with obj to parse, removed after if removeGlobal option is TRUE
    removeGlobal: true      
});

process.env.NODE_ENV = "development";

var obj = {
    ref: "=env.NODE_ENV="
};

refParser.parse(obj);

expect(obj).to.deep.equals({
    ref: "development"
}); // === TRUE

API

parse(obj: Object, key?: String)

Parse all references inside obj parameter. If key is defined parse only references inside this key

parseReferences(str: String, obj: Object): any

Return the parsed references from str parameters, all references values come from obj parameters.

getReferenceKeys(str: String, referenceChar?: String): Array\<String>

Return references keys from the str parameters. A reference key look like <referenceChar><ref-path><referenceChar> (for example %refA%)

hasReferences(str: String, referenceChar?: String): Boolean

Return trus if str parameter has one or more references.

Full example

var refParser = require('ref-parser')();

var obj = {
    refA: "valueA",
    // Simple reference
    refB: "%refA%",
    // Multi references
    refC: "%refA%-%refB%",
    refD: {
        refE: 0,
        refNull: null,
        refUndefined: undefined
    },
    refFalse: false,
    refTrue: true,
    // Multi references with object key and reference to a reference
    refF: "%refD.refE%-%refG%",
    refG: "%refD.refE%",
    // References inside array
    arrayA: [
        "value1",
        "%refD%",
        "%refTrue%"
    ],
    // Reference from array
    refH: "%arrayA.1.refE%",
    // Reference to null
    refI: "%refD.refNull%",
    // Reference to undefined
    refJ: "%refD.refUndefined%",
    refK: "%refD.refNull%-value",
    // Reference to false
    refL: "%refFalse%"
}

refParser.parse(obj);

expect(obj).to.deep.equals({
    refA: "valueA",
    refB: "valueA",
    refC: "valueA-valueA",
    refD: {
        refE: 0,
        refNull: null,
        refUndefined: undefined
    },
    refFalse: false,
    refTrue: true,
    refF: "0-0",
    refG: 0,
    arrayA: [
        "value1",
        {
            refE: 0,
            refNull: null,
            refUndefined: undefined
        },
        true
    ],
    refH: 0,
    refI: null,
    refJ: undefined,
    refK: "null-value",
    refL: false
}); // === TRUE

Test

npm test