diff options
| author | Akshay Nair <phenax5@gmail.com> | 2023-08-10 23:26:49 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2023-08-10 23:26:49 +0530 |
| commit | 629993f2d7de1270d3aaa4ab2a6f9571cdffd621 (patch) | |
| tree | 9b3c352f95e719ed5193293c1aaa4deb1e198e38 /src/eval.ts | |
| parent | e01cb693bc5737792e2b37abfd98d2d8f81bac4d (diff) | |
| download | css-everything-629993f2d7de1270d3aaa4ab2a6f9571cdffd621.tar.gz css-everything-629993f2d7de1270d3aaa4ab2a6f9571cdffd621.zip | |
feat: integrates parser and evaluator and creates a complete working example
Diffstat (limited to 'src/eval.ts')
| -rw-r--r-- | src/eval.ts | 10 |
1 files changed, 10 insertions, 0 deletions
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<void> removeClass(id: string, classes: string): Promise<void> + delay(num: number): Promise<void> + jsEval(js: string): Promise<any> // requestGetCss(url: string): Promise<string> // getVarable(name: string, def?: string): Promise<string> // updateVariable(id: string, varName: string, value: string): Promise<void> @@ -28,6 +30,14 @@ export const evalExpr = async (expr: Expr, deps: Dependencies): Promise<string | await deps.removeClass(id, classes) } }, + 'delay': async () => { + 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 |
