File
Blob: build/deps/nodejs.MODULE.bazel
| 1 | NODE_VERSION = "22.21.1" |
| 2 | |
| 3 | # ======================================================================================== |
| 4 | # Node.js bootstrap |
| 5 | # |
| 6 | # workerd uses Node.js scripts for generating TypeScript types. |
| 7 | node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") |
| 8 | node.toolchain( |
| 9 | node_urls = [ |
| 10 | # github workflows may substitute a mirror URL here to avoid fetch failures. |
| 11 | # "WORKERS_MIRROR_URL/https://nodejs.org/dist/v{version}/{filename}", |
| 12 | "https://nodejs.org/dist/v{version}/{filename}", |
| 13 | ], |
| 14 | node_version = NODE_VERSION, |
| 15 | ) |
| 16 | |
| 17 | npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") |
| 18 | npm.npm_translate_lock( |
| 19 | name = "npm", |
| 20 | bins = { |
| 21 | # Expose CLI binaries for OpenNext builds |
| 22 | "esbuild": ["esbuild=bin/esbuild"], |
| 23 | "next": ["next=./dist/bin/next"], |
| 24 | "wrangler": ["wrangler=bin/wrangler.js"], |
| 25 | }, |
| 26 | data = [ |
| 27 | "//:package.json", |
| 28 | "//:pnpm-workspace.yaml", |
| 29 | "//images/container-client-test:package.json", |
| 30 | "//src/workerd/api/tests/opennextjs/src:package.json", |
| 31 | ], |
| 32 | npmrc = "//:.npmrc", |
| 33 | pnpm_lock = "//:pnpm-lock.yaml", |
| 34 | verify_node_modules_ignored = "//:.bazelignore", |
| 35 | ) |
| 36 | use_repo(npm, "npm") |
| 37 | |
| 38 | rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext") |
| 39 | rules_ts_ext.deps( |
| 40 | # This keeps the TypeScript version in-sync with the editor, which is typically best. |
| 41 | ts_version_from = "//:package.json", |
| 42 | ) |
| 43 | use_repo(rules_ts_ext, "npm_typescript") |