aboutsummaryrefslogtreecommitdiff
path: root/src/eval.ts
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-13 18:46:16 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-13 18:56:10 +0530
commit78550c0d1c7037b17bdaa9413351b759b20772c0 (patch)
tree2fbef895d94698ec3ec20fe961493748c1a6f1c0 /src/eval.ts
parent2f3de513168ac8a912e4b6540907492437a5f834 (diff)
downloadcss-everything-78550c0d1c7037b17bdaa9413351b759b20772c0.tar.gz
css-everything-78550c0d1c7037b17bdaa9413351b759b20772c0.zip
feat: adds conditionals
Diffstat (limited to '')
-rw-r--r--src/eval.ts9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/eval.ts b/src/eval.ts
index a70c760..1a55364 100644
--- a/src/eval.ts
+++ b/src/eval.ts
@@ -70,6 +70,15 @@ const getFunctions = (name: string, args: Expr[], actions: EvalActions) =>
}
},
+ if: async () => {
+ const cond = await evalExpr(args[0], actions)
+ const FALSEY = ['0', 'false']
+ if (cond && !FALSEY.includes(cond.replace(/(^'|")|('|"$)/g, ''))) {
+ return evalExpr(args[1], actions)
+ } else {
+ return evalExpr(args[2], actions)
+ }
+ },
delay: async () => {
const num = await evalExpr(args[0], actions)
num && (await actions.delay(parseInt(num, 10)))