Neutron Polarization Manipulator
    Wondering what’s next for npm?Check out our public roadmap! »

    expression-expander

    7.0.10 • Public • Published

    npm License minified size downloads GitHub Issues Build Status Styled with prettier Commitizen friendly Known Vulnerabilities Coverage Status

    Expression Expander

    Expands \${to be evaluated} expressions in object graphs. The actual expression syntax inside of the \${evaluated} is not defined within this module (only simple key lookup)

    example

    file.js

    import { createContext } from "expression-expander";
    
    const context = createContext();
    
    context.properties = { aKey: "aValue", moreKeys: { a: 1, b: 2 } };
    
    // expanding whole expressions at the key position
    console.log(
      JSON.stringify(
        context.expand({ simple: "${aKey}", complex: { "${moreKeys}": {} } })
      )
    );

    Output

    { "simple": "aValue", "complex": { "a": 1, "b": 2 } }

    Any Object of the following types may be expanded

    • String
    • Number
    • BigInt
    • Buffer
    • Object (key and value will be expanded)
    • Array
    • Map (key and value will be expanded)
    • Set
    • Boolean
    • Promise

    API

    Table of Contents

    expression-expander

    Evaluator

    Type: Function

    Parameters

    Returns Object expression evaluation result

    PathEntry

    Type: Object

    Properties

    Quoter

    Type: Function

    Parameters

    Returns string quoted value

    ExpressionExpander

    Type: Object

    Properties

    expand

    expand

    Parameters

    Returns any expanded object

    properties

    Properties used for the default expander implementation

    createContext

    Creates a new expansion context

    Parameters

    • options Object? object with the following keys (optional, default {})

      • options.valueQuoter Quoter? to quote expanded values by default no special quoting is done and the evaluated result will be direcly inserted into the output string
      • options.evaluate Evaluator? evaluate(expression,context,path) function to evaluate expressions the default evaluation function does a lookup into the properties
      • options.keepUndefinedValues boolean? true: is expression resolves to undefind the original string will be used (with surrounding ${})
      • options.maxNestingLevel number? max number of recursive calls to expand defaults to 20
      • options.properties Object? default properties to evaluate expression against

    Returns ExpressionExpander newly created expansion context

    install

    With npm do:

    npm install expression-expander

    license

    BSD-2-Clause

    Install

    npm i expression-expander

    DownloadsWeekly Downloads

    575

    Version

    7.0.10

    License

    BSD-2-Clause

    Unpacked Size

    15.9 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar