jsonata-extended
Version:
Extended JSONata object with custom functions
27 lines (24 loc) • 1.33 kB
JavaScript
const jsonataOriginal = require('jsonata');
const jsonataFunctions = require('./jsonata-functions');
/**
* Return a JSONata expression object that includes the custom functions registered
*
* @param {Object} expr - JSONata expression {@link https://www.npmjs.com/package/jsonata|JSONata NPM}
* @param {Object} options
* @param {boolean} options.recover: attempt to recover on parse error
* @param {Function} options.RegexEngine: RegEx class constructor to use
* @example <caption>Example using the extended JSONata as a dropin replacement for the standard {@link https://www.npmjs.com/package/jsonata|JSONata NPM}</caption>
* // const jsonata = require('jsonata');
* const jsonata = require('jsonata-extended');
* const expr = jsonata('$htmltotext("<p>Leadership has a dark side; a "leadership shadow" that often creates an unknown; lurking fear.</p>")');
* const result = expr.evaluate();
* @see {@link https://www.npmjs.com/package/jsonata|JSONata NPM}
* @returns {{evaluate: evaluate, assign: assign, registerFunction: registerFunction,
* ast: ast, errors: errors}} Evaluated expression
*/
function jsonataExtended(expr, options) {
const expression = jsonataOriginal(expr, options);
jsonataFunctions.registerWithJSONATA(expression);
return expression;
}
module.exports = jsonataExtended;