From a09b99565138bb4bc73a5328397428fb5025817b Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Wed, 19 Jan 2022 23:07:03 -0800 Subject: Bun.Transpiler – API for scanning imports/exports of JSX/TSX/TS/JS files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bench/snippets/scanner/scan.node-esbuild.mjs | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 bench/snippets/scanner/scan.node-esbuild.mjs (limited to 'bench/snippets/scanner/scan.node-esbuild.mjs') 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"); -- cgit v1.2.3