diff options
author | 2022-07-12 04:40:12 -0400 | |
---|---|---|
committer | 2022-07-12 01:40:12 -0700 | |
commit | a9e4ff2029a769737982fcf7e0b7d76d35cf35e4 (patch) | |
tree | 497832408d926e2bed779fcec4ba655624a29792 /bench/snippets/transpiler.mjs | |
parent | 7eea306b0ff46a27f134809a9b3c12bf4b38fa7e (diff) | |
download | bun-a9e4ff2029a769737982fcf7e0b7d76d35cf35e4.tar.gz bun-a9e4ff2029a769737982fcf7e0b7d76d35cf35e4.tar.zst bun-a9e4ff2029a769737982fcf7e0b7d76d35cf35e4.zip |
cleanup benchmarks folder (#587)
* cleanup benchmarks
* run prettier
Diffstat (limited to 'bench/snippets/transpiler.mjs')
-rw-r--r-- | bench/snippets/transpiler.mjs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/bench/snippets/transpiler.mjs b/bench/snippets/transpiler.mjs new file mode 100644 index 000000000..6872d88b7 --- /dev/null +++ b/bench/snippets/transpiler.mjs @@ -0,0 +1,58 @@ +import { readFileSync } from "fs"; + +var transformSync; +var transform; +var opts; +if (process.isBun) { + const transpiler = new Bun.Transpiler({ loader: "jsx" }); + transformSync = transpiler.transformSync.bind(transpiler); + transform = transpiler.transform.bind(transpiler); + opts = "jsx"; +} else if (process.env["esbuild"]) { + try { + const esbuild = await import("esbuild"); + transformSync = esbuild.transformSync; + transform = esbuild.transform; + opts = { loader: "jsx" }; + } catch (exception) { + throw exception; + } +} else if (process.env["swc"]) { + try { + const swc = await import("@swc/core"); + transformSync = swc.transformSync; + transform = swc.transform; + opts = { + sourceMaps: false, + inlineSourcesContent: false, + jsc: { + target: "es2022", + parser: { + jsx: true, + }, + }, + }; + } catch (exception) { + throw exception; + } +} else if (process.env["babel"]) { + try { + const swc = await import("@babel/core"); + transformSync = swc.transformSync; + transform = swc.transform; + opts = { + sourceMaps: false, + presets: [(await import("@babel/preset-react")).default], + }; + } catch (exception) { + throw exception; + } +} + +const code = readFileSync("src/test/fixtures/simple.jsx", "utf8"); + +if (process.env.ASYNC) { + console.log(await transform(code, opts)); +} else { + console.log(transformSync(code, opts)); +} |