aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-26 00:14:15 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-26 00:14:15 -0700
commit66ed7c1f30d1ba6569efa114c9d90ccac45fb86a (patch)
tree4ba9471f0e3dfe2e8785654757464de43937229d /examples
parentff8393ce3264f1d40fc82aef428dbb8c766b2b6f (diff)
downloadbun-66ed7c1f30d1ba6569efa114c9d90ccac45fb86a.tar.gz
bun-66ed7c1f30d1ba6569efa114c9d90ccac45fb86a.tar.zst
bun-66ed7c1f30d1ba6569efa114c9d90ccac45fb86a.zip
Basic macro impl
Diffstat (limited to 'examples')
-rw-r--r--examples/macros/example.js4
-rw-r--r--examples/macros/mystery-box.tsx15
2 files changed, 19 insertions, 0 deletions
diff --git a/examples/macros/example.js b/examples/macros/example.js
new file mode 100644
index 000000000..d612c1fa4
--- /dev/null
+++ b/examples/macros/example.js
@@ -0,0 +1,4 @@
+// source code
+import { mysteryBox } from "macro:./mystery-box";
+
+export default "You roll! " + mysteryBox(123);
diff --git a/examples/macros/mystery-box.tsx b/examples/macros/mystery-box.tsx
new file mode 100644
index 000000000..9e72ee1c0
--- /dev/null
+++ b/examples/macros/mystery-box.tsx
@@ -0,0 +1,15 @@
+// macro code:
+export function mysteryBox(node) {
+ const dice = Math.round(Math.random() * 100);
+ if (dice < 25) {
+ return <number value={5} />;
+ } else if (dice < 50) {
+ return <true />;
+ } else if (dice < 75) {
+ return <false />;
+ } else if (dice < 90) {
+ return <string value="a string" />;
+ } else {
+ return <string value={"a very rare string " + dice.toString(10)} />;
+ }
+}