Asynchronous Engine
json-logic-engine
comes with built-in support for asynchronous operations, so that you may integrate with external data sources our modules that may only resolve via Promises.import { AsyncLogicEngine } from 'json-logic-engine'const engine = new AsyncLogicEngine()engine.addMethod('after250ms', async (n) => {return new Promise(resolve => {setTimeout(() => {resolve(n)}, 250)})})async function main () {const f = await engine.build({ '+': [{ after250ms: 1 }, 1] })console.log(await f()) // prints 2}
At the time of writing, there are no built-in asynchronous operations, although each of the higher order operators are built-with support for asynchronous operations. (so you can map/filter/reduce/etc using async methods.)