aboutsummaryrefslogtreecommitdiff
path: root/src/api/demo/lib/scan.ts
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-27 23:20:10 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-27 23:20:10 -0800
commit50560e169ca39c0b4ec163cb32897baf7620aa69 (patch)
tree83eb721bfd4a0318874c1f69d254a4fd9446512b /src/api/demo/lib/scan.ts
parent36c249e9c1fc6e0000d23ae0055eed54a5437c74 (diff)
downloadbun-50560e169ca39c0b4ec163cb32897baf7620aa69.tar.gz
bun-50560e169ca39c0b4ec163cb32897baf7620aa69.tar.zst
bun-50560e169ca39c0b4ec163cb32897baf7620aa69.zip
WASM
Diffstat (limited to 'src/api/demo/lib/scan.ts')
-rw-r--r--src/api/demo/lib/scan.ts44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/api/demo/lib/scan.ts b/src/api/demo/lib/scan.ts
new file mode 100644
index 000000000..4d16d5b8c
--- /dev/null
+++ b/src/api/demo/lib/scan.ts
@@ -0,0 +1,44 @@
+import { init, parse } from "es-module-lexer";
+
+import { Bun } from "./api";
+
+export async function start() {
+ await init;
+ await Bun.init("/bun-wasm.wasm");
+}
+
+const swcOptions = {
+ sourceMaps: false,
+ inlineSourcesContent: false,
+ jsc: {
+ target: "es2022",
+ parser: {
+ jsx: true,
+ syntax: "typescript",
+ tsx: false,
+ decorators: false,
+ dynamicImport: false,
+ },
+ },
+};
+
+export async function transform(contents, file) {
+ var result = {
+ timings: {
+ lexer: 0,
+ bun: 0,
+ },
+ };
+ result.timings.lexer = performance.now();
+ result.lexer = await parse(contents, file);
+ result.timings.lexer = performance.now() - result.timings.lexer;
+
+ result.timings.bun = performance.now();
+ result.bun = Bun.scan(contents, file);
+ result.timings.bun = performance.now() - result.timings.bun;
+
+ console.log("lexer:", result.timings.lexer, "ms");
+ console.log("Bun:", result.timings.bun, "ms");
+
+ return result;
+}