aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/scanner/scan.node-esbuild.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'bench/snippets/scanner/scan.node-esbuild.mjs')
-rw-r--r--bench/snippets/scanner/scan.node-esbuild.mjs37
1 files changed, 37 insertions, 0 deletions
diff --git a/bench/snippets/scanner/scan.node-esbuild.mjs b/bench/snippets/scanner/scan.node-esbuild.mjs
new file mode 100644
index 000000000..946250d1f
--- /dev/null
+++ b/bench/snippets/scanner/scan.node-esbuild.mjs
@@ -0,0 +1,37 @@
+import { build, buildSync } from "esbuild";
+const fixture = ["action", "default", "loader"];
+const ITERATIONS = parseInt(process.env.ITERATIONS || "1") || 1;
+
+const opts = {
+ metafile: true,
+ format: "esm",
+ platform: "neutral",
+ write: false,
+ logLevel: "silent",
+ entryPoints: ["remix-route.ts"],
+};
+
+const getExports = ({ metafile }) => {
+ for (let i = 0; i < fixture.length; i++) {
+ if (fixture[i] !== metafile.outputs["remix-route.js"].exports[i]) {
+ throw new Error("Mismatch");
+ }
+ }
+};
+
+console.time("Get exports");
+
+if (!process.env.SYNC) {
+ var promises = new Array(ITERATIONS);
+ for (let i = 0; i < ITERATIONS; i++) {
+ promises[i] = build(opts).then(getExports);
+ }
+
+ await Promise.all(promises);
+} else {
+ for (let i = 0; i < ITERATIONS; i++) {
+ getExports(buildSync(opts));
+ }
+}
+
+console.timeEnd("Get exports");