summaryrefslogtreecommitdiff
path: root/src/eval.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-13 21:12:14 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-13 21:12:14 +0530
commit6411d58b48682c65165a1e717a9bf837737887f3 (patch)
treea56db95e45f0a68c2536cde827bd3c3c4a023088 /src/eval.ts
parent78550c0d1c7037b17bdaa9413351b759b20772c0 (diff)
downloadcss-everything-6411d58b48682c65165a1e717a9bf837737887f3.tar.gz
css-everything-6411d58b48682c65165a1e717a9bf837737887f3.zip
fix: get-var hack
Diffstat (limited to 'src/eval.ts')
-rw-r--r--src/eval.ts19
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>,