Skip to content

Core AST and serializers for jsonata-ui

License

Notifications You must be signed in to change notification settings

saasquatch/jsonata-ui-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jsonata-ui-core

npm version

Core AST and serializers for jsonata-ui

npm install jsonata-ui-core

The core library includes a serializer to turning JSONata ASTs back into strings.

import {serializer} from "jsonata-ui-core";
import jsonata from "jsonata"

const input = `a.b.c = "foo"`;
const ast = jsonata(input).ast();
const output = serializer(ast);
console.log("There and back again", input, output);

Edit jsonata serializer demo

Versions matching with JSONata

This library serializes ASTs, and aims to match versions numbers with jsonata-js. This is because the ASTs returned by jsonata vary significantly by version.

jsonata Jsonata-ui-core
1.7.x 1.7.x
<1.6.x Not supported

Not Implemented

  • Some operators not yet implemented
  • Complex thunk functions: λ($f) { λ($x) { $x($x) }( λ($g) { $f( (λ($a) {$g($g)($a)}))})}(λ($f) { λ($n) { $n < 2 ? 1 : $n * $f($n - 1) } })(6)
  • Regex: $matcher := /[a-z]*an[a-z]*/i
  • Partial function application ( $first5 := $substring(?, 0, 5); $first5("Hello, World") )
  • Transform operator: | Account.Order.Product | {'Price': Price * 1.2} |
  • Conditional without else: Account ? null vs Account ? null : true
  • Merged back into main jsonata-js package

Sponsors

Sponsored by SaaSquatch. Loyalty, point and referral programs for forward-looking companies.