UNPKG

jora

Version:

JavaScript object query engine

97 lines (90 loc) 2.59 kB
'use strict'; 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;