From 629993f2d7de1270d3aaa4ab2a6f9571cdffd621 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 10 Aug 2023 23:26:49 +0530 Subject: feat: integrates parser and evaluator and creates a complete working example --- src/eval.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/eval.ts') diff --git a/src/eval.ts b/src/eval.ts index 1e18457..0ab52c8 100644 --- a/src/eval.ts +++ b/src/eval.ts @@ -4,6 +4,8 @@ import { match, matchString } from "./utils/adt"; export type Dependencies = { addClass(id: string, classes: string): Promise removeClass(id: string, classes: string): Promise + delay(num: number): Promise + jsEval(js: string): Promise // requestGetCss(url: string): Promise // getVarable(name: string, def?: string): Promise // updateVariable(id: string, varName: string, value: string): Promise @@ -28,6 +30,14 @@ export const evalExpr = async (expr: Expr, deps: Dependencies): Promise { + const num = await evalExpr(args[0], deps) + num && await deps.delay(parseInt(num, 10)) + }, + 'js-eval': async () => { + const js = await evalExpr(args[0], deps) + js && await deps.jsEval(js) + }, _: () => Promise.reject(new Error('not supposed to be here')), }) return undefined -- cgit v1.3.1