Skip to content

Commit 53cadf7

Browse files
committed
Initial move to Bazel
1 parent 8cdf3cd commit 53cadf7

18 files changed

+1057
-14504
lines changed

.bazeliskrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
BAZELISK_BASE_URL=https://github.com/aspect-build/aspect-cli/releases/download
2+
USE_BAZEL_VERSION=aspect/2025.11.0

.bazelrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Fix for "dependency checking of directories is unsound" warning
2+
startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1
3+
4+
common --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig
5+
6+
# Use "tsc" as the transpiler when ts_project has no `transpiler` set.
7+
# Bazel 6.4 or greater: 'common' means 'any command that supports this flag'
8+
common --@aspect_rules_ts//ts:default_to_tsc_transpiler

.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8.2.1

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ node_modules/
88
npm-debug.log
99
yarn-error.log
1010

11+
# Bazel output directories
12+
bazel-*
13+
1114
# Note: /dist/Autolinker.js and /dist/Autolinker.min.js are not gitignored to
1215
# allow for Bower
1316
/dist/commonjs

.husky/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
npx lint-staged
1+
npm run lint-staged

BUILD.bazel

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
load("@npm//:defs.bzl", "npm_link_all_packages")
2+
load("@aspect_rules_js//js:defs.bzl", "js_library")
3+
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
4+
load("//build-tools:ts-bundle.bzl", "ts_bundle")
5+
6+
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
7+
load("@aspect_rules_ts//ts:defs.bzl", "ts_project", "ts_config")
8+
load("@bazel_skylib//rules:write_file.bzl", "write_file")
9+
10+
npm_link_all_packages(name = "node_modules")
11+
12+
src_files = glob(["src/**/*.ts"])
13+
14+
npm_package(
15+
name = "package",
16+
package = "autolinker",
17+
srcs = [
18+
":library"
19+
] + src_files, # include the src files for source maps to reference
20+
)
21+
22+
js_library(
23+
name = "library",
24+
deps = [
25+
":src_esm",
26+
":src_cjs",
27+
]
28+
)
29+
30+
# Create ESM bundle
31+
ts_bundle(
32+
name = "src_esm",
33+
entry_point = "src/index.ts",
34+
root_dir = "src",
35+
srcs = src_files,
36+
tsconfig_target = ":tsconfig",
37+
tsconfig_file_path = "tsconfig.json",
38+
out_js = "esm/index.mjs",
39+
out_js_map = "esm/index.mjs.map",
40+
out_dts = "esm/index.d.ts",
41+
format = "esm",
42+
target = "es2022",
43+
platform = "node",
44+
)
45+
46+
# Create CommonJS bundle
47+
ts_bundle(
48+
name = "src_cjs",
49+
entry_point = "src/index.ts",
50+
root_dir = "src",
51+
srcs = src_files,
52+
tsconfig_target = ":tsconfig",
53+
tsconfig_file_path = "tsconfig.json",
54+
out_js = "cjs/index.js",
55+
out_js_map = "cjs/index.js.map",
56+
out_dts = "cjs/index.d.ts",
57+
format = "cjs",
58+
target = "es2022",
59+
platform = "node",
60+
)
61+
62+
ts_config(
63+
name = "tsconfig",
64+
src = "tsconfig.json",
65+
visibility = [":__subpackages__"],
66+
)

MODULE.bazel

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# rules_js
2+
bazel_dep(name = "aspect_rules_js", version = "2.3.7")
3+
bazel_dep(name = "rules_nodejs", version = "6.3.5")
4+
5+
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
6+
node.toolchain(node_version = "22.14.0")
7+
8+
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
9+
npm.npm_translate_lock(
10+
name = "npm",
11+
pnpm_lock = "//:pnpm-lock.yaml",
12+
npmrc = "//:.npmrc",
13+
)
14+
use_repo(npm, "npm")
15+
16+
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
17+
# Allows developers to use the matching pnpm version, for example:
18+
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
19+
use_repo(pnpm, "pnpm")
20+
21+
# rules_ts
22+
bazel_dep(name = "aspect_rules_ts", version = "3.5.3")
23+
24+
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True)
25+
rules_ts_ext.deps(
26+
ts_version_from = "//:package.json",
27+
)
28+
29+
use_repo(rules_ts_ext, "npm_typescript")
30+
31+
# rules_esbuild
32+
bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1")
33+
34+
# bazel_skylib
35+
bazel_dep(name = "bazel_skylib", version = "1.7.1")

MODULE.bazel.lock

Lines changed: 549 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

REPO.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ignore_directories([
2+
".github/**/*",
3+
".vscode/**/*",
4+
"**/node_modules",
5+
])

build-tools/BUILD.bazel

Whitespace-only changes.

0 commit comments

Comments
 (0)