aboutsummaryrefslogtreecommitdiff
path: root/src/api/demo/lib/scan.ts
diff options
context:
space:
mode:
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;
+}