turbo
c3ab2d99 - fix: Treat Bun runtime modules as builtins in Boundaries (#12141)

Commit
2 days ago
fix: Treat Bun runtime modules as builtins in Boundaries (#12141) ## Summary Fixes #11857 - `turbo boundaries` incorrectly flagged `import { $, which } from 'bun'` as a type-only import when `@types/bun` existed in devDependencies - Added `is_bun_builtin()` to recognize `bun` and `bun:*` imports as runtime builtins, skipping the type-only check — analogous to how Node.js builtins are already handled via `ResolveError::Builtin` ## Why The boundaries checker assumes that if a package isn't declared as a dependency but its `@types/*` counterpart is, it must be a type-only package. This is correct for most packages (e.g. `@types/node` for Node.js APIs used only as types), but `bun` is a runtime-provided module — its imports are real value imports, not type-only. ## Testing - **Unit tests:** 9 test cases for `is_bun_builtin`, plus 3 integration-level unit tests exercising `check_package_import` directly (bun import with `@types/bun` in deps, `bun:test` subpath, and a regression test ensuring non-Bun type-only packages are still flagged) - **Integration test:** Added `import { $, which } from "bun"` and `import { test } from "bun:test"` to the boundaries fixture — the snapshot confirms they produce no diagnostics
Author
Parents
Loading