jora
Version:
JavaScript object query engine
97 lines (90 loc) • 2.59 kB
JavaScript
;
const Arg1 = require('./Arg1.cjs');
const Array = require('./Array.cjs');
const Assertion = require('./Assertion.cjs');
const Binary = require('./Binary.cjs');
const Block = require('./Block.cjs');
const Compare = require('./Compare.cjs');
const CompareFunction = require('./CompareFunction.cjs');
const Conditional = require('./Conditional.cjs');
const Context = require('./Context.cjs');
const Current = require('./Current.cjs');
const Data = require('./Data.cjs');
const Declarator = require('./Declarator.cjs');
const Definition = require('./Definition.cjs');
const Filter = require('./Filter.cjs');
const Function = require('./Function.cjs');
const GetProperty = require('./GetProperty.cjs');
const Identifier = require('./Identifier.cjs');
const Literal = require('./Literal.cjs');
const Map$1 = require('./Map.cjs');
const MapRecursive = require('./MapRecursive.cjs');
const Method = require('./Method.cjs');
const MethodCall = require('./MethodCall.cjs');
const Object$1 = require('./Object.cjs');
const ObjectEntry = require('./ObjectEntry.cjs');
const Parentheses = require('./Parentheses.cjs');
const Pick = require('./Pick.cjs');
const Pipeline = require('./Pipeline.cjs');
const Placeholder = require('./Placeholder.cjs');
const Postfix = require('./Postfix.cjs');
const Prefix = require('./Prefix.cjs');
const Reference = require('./Reference.cjs');
const SliceNotation = require('./SliceNotation.cjs');
const Spread = require('./Spread.cjs');
const Template = require('./Template.cjs');
const nodes = {
Arg1,
Array,
Assertion,
Binary,
Block,
Compare,
Conditional,
Context,
Current,
Data,
Declarator,
Definition,
Filter,
Function,
GetProperty,
Identifier,
Literal,
Map: Map$1,
MapRecursive,
Method,
MethodCall,
Object: Object$1,
ObjectEntry,
Parentheses,
Pick,
Pipeline,
Placeholder,
Postfix,
Prefix,
Reference,
SliceNotation,
CompareFunction,
Spread,
Template
};
const extract = type => new Map(
Object.entries(nodes)
.map(([key, value]) => [key, value[type]])
.filter(([, value]) => typeof value === 'function')
);
const build = {};
extract('build').forEach(
(value, key) => (build[key] = value)
);
const compile = extract('compile');
const walk = extract('walk');
const stringify = extract('stringify');
const suggest = extract('suggest');
exports.build = build;
exports.compile = compile;
exports.nodes = nodes;
exports.stringify = stringify;
exports.suggest = suggest;
exports.walk = walk;