Have ideas to improve npm?Join in the discussion! »

    config-expander

    12.0.1 • Public • Published

    npm License minified size downloads semantic-release Styled with prettier Commitizen friendly

    config-expander

    Expands expressions in config files

    example

    file.js

    import { expand } from "config-expander";
     
    // expanding hole expressions at the value position (result key is a number)
    expand({ key: "${value + 1}" }, { constants: { value: 77 } }).then(r =>
      console.log(JSON.stringify(r))
    );
     
    // calculate port numbers
    expand({ constants: { base: 10000 }, http: { port: "${base + 1}" } }).then(r =>
      console.log(JSON.stringify(r))
    );
     
    // load config from file
    expand("${include('tests/fixtures/other.json')}").then(r =>
      console.log(JSON.stringify(r))
    );

    Output

    { "key" : 78 }
    { "constants": { "base": 10000 }, "http": { "port": 10001 }}
    { "key": "value from other" }

    Examples

    read config file (json)

    const configuration await expand("${include('" + '/path/to/the/config.json' + "')}") 

    load key file

    {
      "ca": "${document(os.home + '/ca.pem')}"
    }

    calculate port numbers

    {
      "http-port": "${base + 0}",
      "https-port": "${base + 1}"
    }

    conditions

    {
      "copy-cmd": "${os.platform == 'win32' ? 'copy' : 'cp'}"
    }

    API

    Table of Contents

    defaultConstants

    Predefined constants

    Type: Object

    Properties

    • env Object environment variables from process.env
    • os Object os module
    • basedir string filesystem configuration start point

    expand

    Expands expressions in a configuration object

    Parameters

    • config Object config source
    • options Object the options (optional, default {})
      • options.constants Object additional constants
      • options.default Object default configuration
      • options.functions Object additional functions

    Returns Promise resolves to the expanded configuration

    Value

    Type: Object

    Properties

    Apply

    Type: Function

    Parameters

    ConfigFunction

    Type: Object

    Properties

    functions

    knwon functions

    include

    include definition form a file

    Parameters

    • file string file name to be included

    Returns string content of the file

    replace

    Replace string

    Parameters

    Returns string replaced content

    toUpperCase

    convert string into upper case

    Parameters

    Returns string uppercase result

    toLowerCase

    convert string into lower case

    Parameters

    Returns string lowercase result

    split

    split source string on pattern boundaries

    Parameters

    Returns Array<string> separated source

    encrypt

    Encrypt a plaintext value

    Parameters

    Returns string encrypted value

    decrypt

    Decrypt a former encrypted string

    Parameters

    Returns string plaintext

    spawn

    Call programm

    Parameters

    Returns string stdout

    merge

    merge from b into a When a and b are arrays of values only the none duplaces are appendend to a

    Parameters

    • a any
    • b any

    Returns any merged b into a

    install

    With npm do:

    npm install config-expander

    license

    BSD-2-Clause

    Install

    npm i config-expander

    DownloadsWeekly Downloads

    476

    Version

    12.0.1

    License

    BSD-2-Clause

    Unpacked Size

    29.4 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar