
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 } };
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
Evaluator
Type: Function
Parameters
Returns Object expression evaluation result
PathEntry
Type: Object
Properties
Quoter
Type: Function
Parameters
Returns string quoted value
Expander
Type: Function
Parameters
Returns (string | boolean | number | bigint | Object | Map | Set) expression evaluation result
ExpressionExpander
Type: Object
Properties
createContext
Creates a new expansion context
Parameters
Returns ExpressionExpander newly created expansion context
expand
Type: Expander
Parameters
object
path
(optional, default [{value:object}]
)
properties
Properties used for the default expander implementation
install
With npm do:
npm install expression-expander
license
BSD-2-Clause