aboutsummaryrefslogtreecommitdiff
path: root/src/eval.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-10 23:26:49 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-10 23:26:49 +0530
commit629993f2d7de1270d3aaa4ab2a6f9571cdffd621 (patch)
tree9b3c352f95e719ed5193293c1aaa4deb1e198e38 /src/eval.ts
parente01cb693bc5737792e2b37abfd98d2d8f81bac4d (diff)
downloadcss-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.ts10
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