UNPKG

jora

Version:

JavaScript object query engine

31 lines (29 loc) 739 B
export function compile(node, ctx) { ctx.put(ctx.buildinFn('mapRecursive')); ctx.put('('); ctx.nodeOrCurrent(node.value); ctx.put(',$=>'); ctx.createScope( () => ctx.node(node.query), (sp) => { ctx.put(')'); return '(' + sp + ','; } ); ctx.put(')'); } export function walk(node, ctx) { ctx.nodeOrNothing(node.value); ctx.node(node.query); } export function stringify(node, ctx) { ctx.nodeOrNothing(node.value); ctx.put('..'); if (ctx.isSimpleGetPropertyQuery(node.query) || ctx.isSimpleMethodCallQuery(node.query)) { ctx.node(node.query); } else { ctx.put('('); ctx.node(node.query); ctx.put(')'); } }