Skip to content
This repository was archived by the owner on Apr 14, 2025. It is now read-only.

Commit 59926f8

Browse files
committed
Add benchmarks for esbuild transpiler.
1 parent 2947b9e commit 59926f8

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

rules_ts/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ ts_project_swc
99
ts_project_swc_rbe
1010
ts_project_worker_swc
1111
ts_project_sandboxed_worker_swc
12+
ts_project_esbuild
1213
ts_project_rules_nodejs
1314
ts_project_rules_nodejs_swc
1415
ts_library

rules_ts/WORKSPACE

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,25 @@ swc_register_toolchains(
4343
swc_version = "v1.2.244",
4444
)
4545

46+
http_archive(
47+
name = "aspect_rules_esbuild",
48+
# HEAD of https://github.com/dzbarsky/rules_esbuild/tree/esbuild_transpiler
49+
sha256 = "24f49ec473c9a96e8efef0f211642579ebc790e4e21cd6a5818ae4bfc610deb0",
50+
strip_prefix = "rules_esbuild-e23be685e07a78ef14dd744ac844193dec09bd2c",
51+
url = "https://github.com/aspect-build/rules_esbuild/archive/e23be685e07a78ef14dd744ac844193dec09bd2c.tar.gz",
52+
)
53+
54+
load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies")
55+
56+
rules_esbuild_dependencies()
57+
58+
load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_VERSION", "esbuild_register_toolchains")
59+
60+
esbuild_register_toolchains(
61+
name = "esbuild",
62+
esbuild_version = LATEST_VERSION,
63+
)
64+
4665
########################################################
4766
# Below only needed for legacy rules_nodejs comparison #
4867

rules_ts/generator.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class Generator {
4141
'ts_project_swc_rbe',
4242
'ts_project_worker_swc',
4343
'ts_project_sandboxed_worker_swc',
44+
'ts_project_esbuild',
4445
'ts_project_rules_nodejs',
4546
'ts_project_rules_nodejs_swc',
4647
'ts_library',
@@ -160,6 +161,12 @@ ${this._ts_attributes()}
160161
'load("@aspect_rules_swc//swc:defs.bzl", "swc_transpiler")',
161162
].join("\n")
162163

164+
case 'ts_project_esbuild':
165+
return [
166+
'load("@aspect_rules_ts//ts:defs.bzl", "ts_project")',
167+
'load("@aspect_rules_js//js:defs.bzl", "js_library")',
168+
'load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild_transpiler")',
169+
].join("\n")
163170
case 'ts_project_rules_nodejs':
164171
return [
165172
'load("@npm//@bazel/typescript:index.bzl", "ts_project")',
@@ -215,6 +222,7 @@ ${this._ts_attributes()}
215222
case 'ts_project_swc_rbe':
216223
case 'ts_project_worker_swc':
217224
case 'ts_project_sandboxed_worker_swc':
225+
case 'ts_project_esbuild':
218226
return `
219227
# Generated BUILD file, see /generate.js
220228
load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin")
@@ -291,6 +299,13 @@ ${rootDeps.map(d => ` \"${d}\",`).join("\n")}
291299
attrs.push(' supports_workers = True,')
292300
break;
293301

302+
case 'ts_project_esbuild':
303+
attrs.push(` tsconfig = "//${this.outputDir}:tsconfig",`)
304+
attrs.push(' declaration = True,')
305+
attrs.push(' transpiler = esbuild_transpiler,')
306+
attrs.push(' supports_workers = False,')
307+
break;
308+
294309
case 'ts_project_rules_nodejs':
295310
attrs.push(` tsconfig = "//${this.outputDir}:tsconfig.json",`)
296311
attrs.push(' declaration = True,')

rules_ts/run_benchmarks.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ styles=(
1313
'ts_project_swc_rbe'
1414
'ts_project_worker_swc'
1515
'ts_project_sandboxed_worker_swc'
16+
'ts_project_esbuild'
1617
'ts_project_rules_nodejs'
1718
'ts_project_rules_nodejs_swc'
1819
'ts_library'

0 commit comments

Comments
 (0)