diff options
| author | Akshay Nair <phenax5@gmail.com> | 2023-08-13 21:12:14 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2023-08-13 21:12:14 +0530 |
| commit | 6411d58b48682c65165a1e717a9bf837737887f3 (patch) | |
| tree | a56db95e45f0a68c2536cde827bd3c3c4a023088 /src/eval.ts | |
| parent | 78550c0d1c7037b17bdaa9413351b759b20772c0 (diff) | |
| download | css-everything-6411d58b48682c65165a1e717a9bf837737887f3.tar.gz css-everything-6411d58b48682c65165a1e717a9bf837737887f3.zip | |
fix: get-var hack
Diffstat (limited to '')
| -rw-r--r-- | src/eval.ts | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/eval.ts b/src/eval.ts index 1a55364..445cb8f 100644 --- a/src/eval.ts +++ b/src/eval.ts @@ -53,8 +53,14 @@ export const evalExpr = async ( _: async _ => undefined, }) -const getFunctions = (name: string, args: Expr[], actions: EvalActions) => - matchString<Promise<EvalValue>>(name, { +const getFunctions = (name: string, args: Expr[], actions: EvalActions) => { + const getVariable = async () => { + const varName = await evalExpr(args[0], actions) + const defaultValue = args[1] && (await evalExpr(args[1], actions)) + return varName && (actions.getVariable(varName) ?? defaultValue) + } + + return matchString<Promise<EvalValue>>(name, { 'add-class': async () => { const id = await evalExpr(args[0], actions) const classes = await evalExpr(args[1], actions) @@ -96,11 +102,9 @@ const getFunctions = (name: string, args: Expr[], actions: EvalActions) => } }, - var: async () => { - const varName = await evalExpr(args[0], actions) - const defaultValue = args[1] && (await evalExpr(args[1], actions)) - return varName && (actions.getVariable(varName) ?? defaultValue) - }, + var: getVariable, + 'get-var': getVariable, + update: async () => { const [id, name, value] = args.length >= 3 @@ -153,6 +157,7 @@ const getFunctions = (name: string, args: Expr[], actions: EvalActions) => _: () => Promise.reject(new Error('not supposed to be here')), }) +} export const evalArgs = ( args: Array<Expr>, |
