Bun#862
Conversation
Having serious problems with the release process and deno.
There was a problem hiding this comment.
Pull request overview
This PR migrates the monorepo from a Deno-first workflow to a Bun/Node + oxc toolchain, updating package metadata, tests, CI, and JSR publishing accordingly.
Changes:
- Replace Deno tasks/config with Bun-based workspace scripts, TypeScript
tsconfig.jsonfiles, and oxc lint/format configuration. - Convert tests from
Deno.test+@std/*asserts/snapshots tobun:testwith Bun snapshot files. - Update GitHub Actions for PR testing and JSR release publishing to run in a Bun container, and update release-please configuration for Node-style releases.
Reviewed changes
Copilot reviewed 67 out of 71 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Add shared TypeScript compiler settings for the new Bun/Node workflow. |
| targetd.code-workspace | Switch VS Code recommendations/settings from Deno to oxc tooling. |
| release-please-config.json | Update release-please to node release type and bump extra-files to jsr.json. |
| package.json | Introduce Bun workspaces/scripts and dependency catalog at repo root. |
| bun.lock | Add Bun lockfile for deterministic installs across workspaces. |
| oxlint.config.ts | Add oxc lint configuration. |
| oxfmt.config.ts | Add oxc formatter configuration. |
| lint-staged.config.js | Switch pre-commit formatting from deno fmt to oxfmt. |
| deno.json | Remove Deno workspace/tasks config. |
| .dvmrc | Remove Deno version pin. |
| .devcontainer/devcontainer.json | Remove Deno-based devcontainer config. |
| .gitignore | Stop ignoring package.json/package-lock.json (enables Node/Bun tooling). |
| .github/actions/test/action.yml | Replace Deno check/lint/test steps with Bun install/check/lint/test. |
| .github/workflows/pull-request.yml | Replace reusable Deno test workflow with direct Bun-based test job. |
| .github/workflows/release.yml | Publish to JSR from a Bun container; replace Deno publish flow. |
| .github/workflows/test.yml | Remove Deno reusable test workflow. |
| .github/workflows/get-deno-version.yml | Remove Deno version discovery workflow. |
| .github/workflows/dependencies.yml | Remove Deno dependency update workflow. |
| packages/api/tsconfig.json | Add package-level TS config extending root config. |
| packages/api/test/tsconfig.json | Add TS config for api tests. |
| packages/api/package.json | Add Node/Bun package metadata for @targetd/api. |
| packages/api/jsr.json | Add JSR publish config for @targetd/api. |
| packages/api/deno.json | Remove Deno package config for @targetd/api. |
| packages/api/test/Data.test.ts | Convert tests to bun:test and Bun snapshots. |
| packages/api/test/utils.test.ts | Convert tests to bun:test. |
| packages/api/test/parsers/switch.test.ts | Convert tests to bun:test. |
| packages/api/test/snapshots/Data.test.ts.snap | Convert snapshots to Bun snapshot format. |
| packages/client/tsconfig.json | Add package-level TS config. |
| packages/client/test/tsconfig.json | Add TS config for client tests. |
| packages/client/package.json | Add Node/Bun package metadata for @targetd/client. |
| packages/client/jsr.json | Add JSR publish config for @targetd/client. |
| packages/client/deno.json | Remove Deno package config for @targetd/client. |
| packages/client/test/index.test.ts | Convert tests to bun:test and Bun snapshots. |
| packages/client/test/queryToURLSearchParams.test.ts | Convert tests to bun:test. |
| packages/client/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format. |
| packages/date-range/tsconfig.json | Add package-level TS config. |
| packages/date-range/test/tsconfig.json | Add TS config for date-range tests. |
| packages/date-range/package.json | Add Node/Bun package metadata for @targetd/date-range. |
| packages/date-range/jsr.json | Add JSR publish config for @targetd/date-range. |
| packages/date-range/deno.json | Remove Deno package config for @targetd/date-range. |
| packages/date-range/test/index.test.ts | Convert tests to bun:test and replace FakeTime with sinon fake timers. |
| packages/explode/tsconfig.json | Add package-level TS config. |
| packages/explode/test/tsconfig.json | Add TS config for explode tests. |
| packages/explode/package.json | Add Node/Bun package metadata for @targetd/explode. |
| packages/explode/jsr.json | Add JSR publish config for @targetd/explode. |
| packages/explode/deno.json | Remove Deno package config for @targetd/explode. |
| packages/explode/test/explode.test.ts | Convert tests to bun:test. |
| packages/fs/tsconfig.json | Add package-level TS config. |
| packages/fs/test/tsconfig.json | Add TS config for fs tests. |
| packages/fs/package.json | Add Node/Bun package metadata for @targetd/fs. |
| packages/fs/jsr.json | Add JSR publish config for @targetd/fs. |
| packages/fs/deno.json | Remove Deno package config for @targetd/fs. |
| packages/fs/src/watch.ts | Switch imports to Node + es-toolkit package entrypoint and reformat overload. |
| packages/fs/test/load.test.ts | Convert tests to bun:test. |
| packages/fs/test/watch.test.ts | Convert tests to bun:test and Node fs helpers. |
| packages/json-schema/tsconfig.json | Add package-level TS config. |
| packages/json-schema/test/tsconfig.json | Add TS config for json-schema tests. |
| packages/json-schema/package.json | Add Node/Bun package metadata for @targetd/json-schema. |
| packages/json-schema/jsr.json | Add JSR publish config for @targetd/json-schema. |
| packages/json-schema/deno.json | Remove Deno package config for @targetd/json-schema. |
| packages/json-schema/src/index.ts | Switch omit import to es-toolkit npm entrypoint; reformat imports. |
| packages/json-schema/test/index.test.ts | Convert tests to bun:test and Bun snapshots. |
| packages/json-schema/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format. |
| packages/server/tsconfig.json | Add package-level TS config. |
| packages/server/test/tsconfig.json | Add TS config for server tests. |
| packages/server/package.json | Add Node/Bun package metadata for @targetd/server. |
| packages/server/jsr.json | Add JSR publish config for @targetd/server. |
| packages/server/deno.json | Remove Deno package config for @targetd/server. |
| packages/server/test/index.test.ts | Convert tests to bun:test and Bun snapshots; switch deps to npm-style imports. |
| packages/server/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format. |
You can also share your feedback on Copilot code review. Take the survey.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR migrates the @targetd monorepo from a Deno-first workflow to a Bun + Node + Oxc toolchain, updating package metadata for publishing and converting the test suite to bun:test.
Changes:
- Replace Deno workspace/tooling (
deno.json, Deno GitHub workflows, Deno test APIs) with Bun equivalents (root/workspacepackage.json, Bun workflows,bun:test). - Add TypeScript project config via root
tsconfig.jsonplus per-packagetsconfig.json/test/tsconfig.json. - Introduce JSR publishing configuration via per-package
jsr.jsonand update release-please configuration accordingly.
Reviewed changes
Copilot reviewed 70 out of 74 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Adds shared TS compiler settings for the monorepo. |
| targetd.code-workspace | Switches editor recommendations/settings from Deno to Oxc. |
| release-please-config.json | Updates release-please release type and tracks jsr.json as an extra file. |
| packages/server/tsconfig.json | Adds package TS config extending root. |
| packages/server/test/tsconfig.json | Adds test TS config for server package. |
| packages/server/test/index.test.ts | Migrates server tests from Deno.test to bun:test + Bun snapshots. |
| packages/server/test/snapshots/index.test.ts.snap | Converts snapshots to Bun snapshot format. |
| packages/server/src/index.ts | Minor refactor/formatting of server routes/handlers. |
| packages/server/package.json | Adds Node/Bun package metadata and scripts for server package. |
| packages/server/jsr.json | Adds JSR publish config for server package. |
| packages/server/deno.json | Removes Deno package config for server package. |
| packages/json-schema/tsconfig.json | Adds package TS config extending root. |
| packages/json-schema/test/tsconfig.json | Adds test TS config for json-schema package. |
| packages/json-schema/test/index.test.ts | Migrates json-schema tests from Deno.test to bun:test + snapshots. |
| packages/json-schema/test/snapshots/index.test.ts.snap | Converts snapshots to Bun snapshot format. |
| packages/json-schema/src/index.ts | Switches imports to Node/Bun-friendly deps (es-toolkit). |
| packages/json-schema/package.json | Adds Node/Bun package metadata and scripts for json-schema package. |
| packages/json-schema/jsr.json | Adds JSR publish config for json-schema package. |
| packages/json-schema/deno.json | Removes Deno package config for json-schema package. |
| packages/fs/tsconfig.json | Adds package TS config extending root. |
| packages/fs/test/watch.test.ts | Migrates watch test to bun:test and Node fs APIs. |
| packages/fs/test/tsconfig.json | Adds test TS config for fs package. |
| packages/fs/test/load.test.ts | Migrates load test to bun:test. |
| packages/fs/src/watch.ts | Switches imports to es-toolkit and refactors formatting. |
| packages/fs/package.json | Adds Node/Bun package metadata and scripts for fs package. |
| packages/fs/jsr.json | Adds JSR publish config for fs package. |
| packages/fs/deno.json | Removes Deno package config for fs package. |
| packages/explode/tsconfig.json | Adds package TS config extending root. |
| packages/explode/test/tsconfig.json | Adds test TS config for explode package. |
| packages/explode/test/explode.test.ts | Migrates explode tests to bun:test. |
| packages/explode/package.json | Adds Node/Bun package metadata and scripts for explode package. |
| packages/explode/jsr.json | Adds JSR publish config for explode package. |
| packages/explode/deno.json | Removes Deno package config for explode package. |
| packages/date-range/tsconfig.json | Adds package TS config extending root. |
| packages/date-range/test/tsconfig.json | Adds test TS config for date-range package. |
| packages/date-range/test/index.test.ts | Migrates date-range tests to bun:test and uses Sinon fake timers. |
| packages/date-range/package.json | Adds Node/Bun package metadata and scripts for date-range package. |
| packages/date-range/jsr.json | Adds JSR publish config for date-range package. |
| packages/date-range/deno.json | Removes Deno package config for date-range package. |
| packages/client/tsconfig.json | Adds package TS config extending root. |
| packages/client/test/tsconfig.json | Adds test TS config for client package. |
| packages/client/test/queryToURLSearchParams.test.ts | Migrates client unit tests to bun:test. |
| packages/client/test/index.test.ts | Migrates integration tests to bun:test + Bun snapshots. |
| packages/client/test/snapshots/index.test.ts.snap | Converts snapshots to Bun snapshot format. |
| packages/client/src/index.ts | Refactors client fetch/error handling code (includes a status-handling change). |
| packages/client/package.json | Adds Node/Bun package metadata and scripts for client package. |
| packages/client/jsr.json | Adds JSR publish config for client package. |
| packages/client/deno.json | Removes Deno package config for client package. |
| packages/api/tsconfig.json | Adds package TS config extending root. |
| packages/api/test/utils.test.ts | Migrates api tests to bun:test. |
| packages/api/test/tsconfig.json | Adds test TS config for api package. |
| packages/api/test/parsers/switch.test.ts | Migrates parser tests to bun:test. |
| packages/api/test/snapshots/Data.test.ts.snap | Converts snapshots to Bun snapshot format. |
| packages/api/test/Data.test.ts | Migrates core API tests to bun:test + snapshots. |
| packages/api/src/parsers/DataItemVariablesParser.ts | Refactors formatting and some non-null assertions in variable parsing checks. |
| packages/api/package.json | Adds Node/Bun package metadata and scripts for api package. |
| packages/api/jsr.json | Adds JSR publish config for api package. |
| packages/api/deno.json | Removes Deno package config for api package. |
| package.json | Adds root Bun workspace config, scripts, and shared version catalog. |
| oxlint.config.ts | Adds Oxc lint configuration. |
| oxfmt.config.ts | Adds Oxc formatter configuration. |
| lint-staged.config.js | Switches pre-commit formatting from deno fmt to oxfmt. |
| deno.json | Removes root Deno workspace/task configuration. |
| bun.lock | Adds Bun lockfile for workspaces/dependencies. |
| .gitignore | Stops ignoring package.json / package-lock.json. |
| .github/workflows/test.yml | Removes the shared Deno-based test workflow. |
| .github/workflows/release.yml | Updates publishing pipeline to use Bun container and jsr publish. |
| .github/workflows/pull-request.yml | Replaces Deno-based PR tests with Bun-based workflow. |
| .github/workflows/get-deno-version.yml | Removes Deno version helper workflow. |
| .github/workflows/dependencies.yml | Removes Deno dependency update workflow. |
| .github/actions/test/action.yml | Replaces Deno check/lint/test steps with Bun install/check/lint/test. |
| .dvmrc | Removes pinned Deno version file. |
| .devcontainer/devcontainer.json | Removes Deno-based devcontainer config. |
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Migrates the monorepo’s tooling and test/runtime environment from Deno-first to Bun-first (with Oxc for lint/format), updating package metadata and CI/release flows accordingly.
Changes:
- Replace Deno tasks/config (deno.json, deno.json per package, Deno tests/snapshots) with Bun equivalents (package.json workspaces, bun:test, bun snapshots, bun.lock).
- Add TS configs across packages and update imports/deps to standard Node/Bun module resolution.
- Update GitHub Actions + release-please configuration to run Bun-based checks/tests and publish to JSR using jsr.json.
Reviewed changes
Copilot reviewed 74 out of 78 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Add repo-wide TS compiler settings |
| targetd.code-workspace | Switch recommended tooling to Oxc |
| release-please-config.json | Switch release-please to node strategy + jsr.json bumps |
| package.json | Add Bun workspaces + scripts + toolchain deps |
| bun.lock | Add Bun lockfile for reproducible installs |
| oxlint.config.ts | Configure oxlint rules |
| oxfmt.config.ts | Configure oxfmt formatting |
| lint-staged.config.js | Run oxfmt via bunx on staged files |
| .gitignore | Stop ignoring package.json / package-lock.json |
| .husky/pre-commit | Add pre-commit hook (Bun) |
| .husky/commit-msg | Add commit-msg hook (Bun) |
| .hooks/pre-commit | Remove old Deno hook |
| .hooks/commit-msg | Remove old Deno hook |
| .github/actions/test/action.yml | Run install/check/lint/test via Bun |
| .github/workflows/pull-request.yml | Run PR CI in Bun container |
| .github/workflows/release.yml | Publish to JSR from Bun container |
| .github/workflows/test.yml | Remove old Deno test workflow |
| .github/workflows/get-deno-version.yml | Remove Deno version workflow |
| .github/workflows/dependencies.yml | Remove Deno dependency update workflow |
| .dvmrc | Remove Deno version pin |
| .devcontainer/devcontainer.json | Remove Deno devcontainer |
| deno.json | Remove root Deno config/tasks |
| packages/api/tsconfig.json | Add package TS config |
| packages/api/package.json | Add package metadata/scripts for Bun workflow |
| packages/api/jsr.json | Add JSR publish config |
| packages/api/deno.json | Remove Deno package config |
| packages/api/test/tsconfig.json | Add TS config for tests |
| packages/api/test/utils.test.ts | Convert tests to bun:test |
| packages/api/test/parsers/switch.test.ts | Convert tests to bun:test |
| packages/api/test/Data.test.ts | Convert tests to bun:test + snapshots |
| packages/api/test/snapshots/Data.test.ts.snap | Convert snapshot format to Bun |
| packages/api/src/parsers/DataItemVariablesParser.ts | Formatting/refactor-only adjustments |
| packages/client/tsconfig.json | Add package TS config |
| packages/client/package.json | Add package metadata/scripts for Bun workflow |
| packages/client/jsr.json | Add JSR publish config |
| packages/client/deno.json | Remove Deno package config |
| packages/client/test/tsconfig.json | Add TS config for tests |
| packages/client/test/queryToURLSearchParams.test.ts | Convert tests to bun:test |
| packages/client/test/index.test.ts | Convert tests to bun:test + snapshots |
| packages/client/test/snapshots/index.test.ts.snap | Convert snapshot format to Bun |
| packages/client/src/index.ts | Adjust response handling formatting (client API) |
| packages/date-range/tsconfig.json | Add package TS config |
| packages/date-range/package.json | Add package metadata/scripts for Bun workflow |
| packages/date-range/jsr.json | Add JSR publish config |
| packages/date-range/deno.json | Remove Deno package config |
| packages/date-range/test/tsconfig.json | Add TS config for tests |
| packages/date-range/test/index.test.ts | Convert tests to bun:test + sinon timers |
| packages/explode/tsconfig.json | Add package TS config |
| packages/explode/package.json | Add package metadata/scripts for Bun workflow |
| packages/explode/jsr.json | Add JSR publish config |
| packages/explode/deno.json | Remove Deno package config |
| packages/explode/test/tsconfig.json | Add TS config for tests |
| packages/explode/test/explode.test.ts | Convert tests to bun:test |
| packages/fs/tsconfig.json | Add package TS config |
| packages/fs/package.json | Add package metadata/scripts for Bun workflow |
| packages/fs/jsr.json | Add JSR publish config |
| packages/fs/deno.json | Remove Deno package config |
| packages/fs/test/tsconfig.json | Add TS config for tests |
| packages/fs/test/load.test.ts | Convert tests to bun:test |
| packages/fs/test/watch.test.ts | Convert tests to bun:test + Node fs APIs |
| packages/fs/src/watch.ts | Switch toolkit import + formatting |
| packages/json-schema/tsconfig.json | Add package TS config |
| packages/json-schema/package.json | Add package metadata/scripts for Bun workflow |
| packages/json-schema/jsr.json | Add JSR publish config |
| packages/json-schema/deno.json | Remove Deno package config |
| packages/json-schema/test/tsconfig.json | Add TS config for tests |
| packages/json-schema/test/index.test.ts | Convert tests to bun:test + snapshots |
| packages/json-schema/test/snapshots/index.test.ts.snap | Convert snapshot format to Bun |
| packages/json-schema/src/index.ts | Switch toolkit import path |
| packages/server/tsconfig.json | Add package TS config |
| packages/server/package.json | Add package metadata/scripts for Bun workflow |
| packages/server/jsr.json | Add JSR publish config |
| packages/server/deno.json | Remove Deno package config |
| packages/server/test/tsconfig.json | Add TS config for tests |
| packages/server/test/index.test.ts | Convert tests to bun:test + snapshots |
| packages/server/test/snapshots/index.test.ts.snap | Convert snapshot format to Bun |
| packages/server/src/index.ts | Server route handler formatting/typing changes |
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
This PR migrates the @targetd monorepo from a Deno-centric setup to a Bun + TypeScript project-references workflow, updates CI/release automation accordingly, and adjusts packages/tests/docs to align with npm-oriented publishing.
Changes:
- Introduces workspace-level TypeScript project references (
tsconfig.json+ per-packagetsconfig.json) and adds root/workspacepackage.json+ Bun/oxc tooling configs. - Migrates tests from
Deno.test/@std/*snapshots tobun:testand Bun snapshot format across packages. - Updates GitHub Actions and release configuration to run on Bun and publish (including adding
package.json/jsr.jsonper package, removingdeno.json).
Reviewed changes
Copilot reviewed 112 out of 116 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Adds root TS project-reference configuration. |
| targetd.code-workspace | Switches editor tooling recommendations/settings to oxc. |
| release-please-config.json | Changes release-please to node release type and tracks jsr.json. |
| packages/server/tsconfig.json | Adds TS build config for server package. |
| packages/server/test/tsconfig.json | Adds TS config for server tests. |
| packages/server/test/index.test.ts | Migrates server tests to bun:test + Bun snapshots; swaps lodash usage. |
| packages/server/test/snapshots/index.test.ts.snap | Converts snapshots to Bun snapshot format. |
| packages/server/src/middleware/castQueryArrayProps.ts | Updates relative import specifiers to .js. |
| packages/server/src/index.ts | Updates internal imports to .js and reformats route handlers. |
| packages/server/package.json | Adds npm package manifest for server. |
| packages/server/jsr.json | Adds JSR publish config for server. |
| packages/server/deno.json | Removes Deno package config for server. |
| packages/server/README.md | Updates install instructions/links for npm-oriented usage. |
| packages/server/.vscode/launch.json | Updates debug runtime to Bun. |
| packages/json-schema/tsconfig.json | Adds TS build config for json-schema package. |
| packages/json-schema/test/tsconfig.json | Adds TS config for json-schema tests. |
| packages/json-schema/test/index.test.ts | Migrates json-schema tests to bun:test + snapshots. |
| packages/json-schema/test/snapshots/index.test.ts.snap | Converts json-schema snapshots to Bun snapshot format. |
| packages/json-schema/src/index.ts | Switches omit import to es-toolkit and adjusts import style. |
| packages/json-schema/src/cli.ts | Updates CLI import specifier to .js and reformats. |
| packages/json-schema/package.json | Adds npm package manifest for json-schema. |
| packages/json-schema/jsr.json | Adds JSR publish config for json-schema. |
| packages/json-schema/deno.json | Removes Deno package config for json-schema. |
| packages/json-schema/README.md | Updates CLI invocation examples for npm + Deno via npm:. |
| packages/fs/tsconfig.json | Adds TS build config for fs package. |
| packages/fs/test/watch.test.ts | Migrates fs watch test to bun:test and Node fs utilities. |
| packages/fs/test/tsconfig.json | Adds TS config for fs tests. |
| packages/fs/test/load.test.ts | Migrates fs load test to bun:test. |
| packages/fs/src/watch.ts | Switches es-toolkit import path and updates .js import specifiers. |
| packages/fs/src/index.ts | Updates exports to .js specifiers. |
| packages/fs/package.json | Adds npm package manifest for fs. |
| packages/fs/jsr.json | Adds JSR publish config for fs. |
| packages/fs/deno.json | Removes Deno package config for fs. |
| packages/fs/README.md | Updates install instructions/links and reformats examples. |
| packages/explode/tsconfig.json | Adds TS build config for explode package. |
| packages/explode/test/tsconfig.json | Adds TS config for explode tests. |
| packages/explode/test/explode.test.ts | Migrates explode tests to bun:test. |
| packages/explode/src/index.ts | Updates exports to .js specifiers. |
| packages/explode/src/explode.ts | Updates internal type import to .js and reformats signature. |
| packages/explode/package.json | Adds npm package manifest for explode. |
| packages/explode/jsr.json | Adds JSR publish config for explode. |
| packages/explode/deno.json | Removes Deno package config for explode. |
| packages/explode/README.md | Updates install instructions/links and tweaks examples. |
| packages/date-range/tsconfig.json | Adds TS build config for date-range package. |
| packages/date-range/test/tsconfig.json | Adds TS config for date-range tests. |
| packages/date-range/test/index.test.ts | Migrates tests to bun:test and switches fake timers to sinon. |
| packages/date-range/package.json | Adds npm package manifest for date-range. |
| packages/date-range/jsr.json | Adds JSR publish config for date-range. |
| packages/date-range/deno.json | Removes Deno package config for date-range. |
| packages/date-range/README.md | Updates install instructions/links for npm-oriented usage. |
| packages/client/tsconfig.json | Adds TS build config for client package. |
| packages/client/test/tsconfig.json | Adds TS config for client tests. |
| packages/client/test/queryToURLSearchParams.test.ts | Migrates query serialization tests to bun:test. |
| packages/client/test/index.test.ts | Migrates client integration tests to bun:test + Bun snapshots. |
| packages/client/test/snapshots/index.test.ts.snap | Converts client snapshots to Bun snapshot format. |
| packages/client/src/index.ts | Updates internal imports to .js and adjusts response status handling. |
| packages/client/package.json | Adds npm package manifest for client. |
| packages/client/jsr.json | Adds JSR publish config for client. |
| packages/client/deno.json | Removes Deno package config for client. |
| packages/client/README.md | Updates links and install instructions for npm-oriented usage. |
| packages/api/tsconfig.json | Adds TS build config for api package. |
| packages/api/test/utils.test.ts | Migrates util tests to bun:test. |
| packages/api/test/tsconfig.json | Adds TS config for api tests. |
| packages/api/test/parsers/switch.test.ts | Migrates parser tests to bun:test. |
| packages/api/test/snapshots/Data.test.ts.snap | Converts api snapshots to Bun snapshot format. |
| packages/api/test/Data.test.ts | Migrates core Data tests to bun:test + snapshots. |
| packages/api/src/util.ts | Updates internal type import specifier to .js and reformats helpers. |
| packages/api/src/types/Targeting.ts | Updates imports to .js and reformats types. |
| packages/api/src/types/Query.ts | Updates imports to .js and reformats types. |
| packages/api/src/types/Payload.ts | Updates imports to .js and reformats types. |
| packages/api/src/types/FallThroughTargeting.ts | Updates imports to .js and reformats types. |
| packages/api/src/types/Data.ts | Updates imports to .js and reformats types. |
| packages/api/src/predicates/targetIncludes.ts | Updates TargetingDescriptor import to .js and reformats predicate. |
| packages/api/src/predicates/equals.ts | Updates TargetingDescriptor import to .js and reformats predicate. |
| packages/api/src/parsers/attachVariableResolver.ts | Updates imports to .js and refactors formatting. |
| packages/api/src/parsers/TargetingPredicates.ts | Updates imports to .js and reformats type. |
| packages/api/src/parsers/TargetingPredicate.ts | Updates MaybePromise import to .js. |
| packages/api/src/parsers/TargetingDescriptor.ts | Updates imports to .js and reformats guard. |
| packages/api/src/parsers/DataItems.ts | Updates imports to .js and reformats parser/type helpers. |
| packages/api/src/parsers/DataItemVariablesParser.ts | Updates imports to .js and refactors validation loop formatting. |
| packages/api/src/parsers/DataItemVariableResolver.ts | Updates imports to .js and reformats resolver helpers. |
| packages/api/src/parsers/DataItemRules.ts | Updates imports to .js and reformats rule transforms. |
| packages/api/src/parsers/DataItemRule.ts | Updates imports to .js and reformats parser/type definitions. |
| packages/api/src/parsers/DataItem.ts | Updates imports to .js and reformats parser/type definitions. |
| packages/api/src/index.ts | Converts all public exports/import specifiers to .js. |
| packages/api/src/createTargetingDescriptor.ts | Updates import to .js and compacts signature. |
| packages/api/src/PromisedData.ts | Updates imports to .js and compacts method signatures. |
| packages/api/src/IData.ts | Updates imports to .js and compacts interface signatures. |
| packages/api/src/Data.ts | Updates internal imports to .js and reformats implementation. |
| packages/api/package.json | Adds npm package manifest for api. |
| packages/api/jsr.json | Adds JSR publish config for api. |
| packages/api/deno.json | Removes Deno package config for api. |
| packages/api/README.md | Updates install instructions and reformats examples. |
| packages/api/.vscode/launch.json | Updates debug runtime to Bun. |
| package.json | Adds root workspace package.json with Bun/tsc/oxc scripts. |
| oxlint.config.ts | Adds oxlint configuration. |
| oxfmt.config.ts | Adds oxfmt configuration. |
| lint-staged.config.js | Switches formatting command to bunx oxfmt. |
| deno.json | Removes root Deno workspace/task configuration. |
| README.md | Updates installation commands to npm-based usage. |
| .husky/pre-commit | Adds Husky pre-commit hook invoking lint-staged. |
| .husky/commit-msg | Adds Husky commit-msg hook invoking commitlint. |
| .hooks/pre-commit | Removes previous Deno-based git hook. |
| .hooks/commit-msg | Removes previous Deno-based git hook. |
| .gitignore | Stops ignoring package manifests; adds tsbuildinfo ignore. |
| .github/workflows/test.yml | Removes Deno-based reusable test workflow. |
| .github/workflows/release.yml | Adds Bun-based test step and adds npm publish job; adjusts concurrency. |
| .github/workflows/pull-request.yml | Updates PR CI to run Bun container + composite test action. |
| .github/workflows/get-deno-version.yml | Removes Deno version helper workflow. |
| .github/workflows/dependencies.yml | Removes Deno dependency update workflow. |
| .github/copilot-instructions.md | Updates repo guidance to Bun-first and npm distribution. |
| .github/actions/test/action.yml | Switches CI steps to Bun install/build/lint/test. |
| .dvmrc | Removes Deno version pin file. |
| .devcontainer/devcontainer.json | Removes Deno-based devcontainer config. |
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Migrates the @targetd/* monorepo from a Deno-first workflow to a Bun/TypeScript build + test setup, updating package metadata and CI/release automation to support npm publishing (and still attempting JSR publishing).
Changes:
- Add TypeScript project references + per-package
tsconfig.jsonfiles and introduce npm workspaces withpackage.jsonper package. - Migrate tests from
Deno.test/@std/*assertions tobun:testand Bun snapshot files. - Replace Deno-centric tooling (deno.json, Deno GitHub Actions) with Bun-based CI, oxc formatting/linting, and updated release workflows.
Reviewed changes
Copilot reviewed 114 out of 118 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Add root TS solution config with references |
| targetd.code-workspace | Switch workspace tooling to oxc |
| release-please-config.json | Switch release-please to node-style releases + jsr.json bumps |
| package.json | Add npm workspaces + Bun/tsc scripts + tool catalog |
| oxlint.config.ts | Add oxc lint config |
| oxfmt.config.ts | Add oxc format config |
| lint-staged.config.js | Switch formatting to oxfmt via bunx |
| deno.json | Remove root Deno config/tasks |
| README.md | Update install docs/examples for npm/Bun |
| .husky/pre-commit | Add Bun-based lint-staged hook |
| .husky/commit-msg | Add Bun-based commitlint hook |
| .hooks/pre-commit | Remove Deno hooks integration |
| .hooks/commit-msg | Remove Deno hooks integration |
| .gitignore | Stop ignoring package.json; ignore tsbuildinfo |
| .github/workflows/test.yml | Remove Deno-based reusable test workflow |
| .github/workflows/release.yml | Add Bun-based test + npm publish; keep jsr publish |
| .github/workflows/pull-request.yml | Run CI tests in Bun container |
| .github/workflows/get-deno-version.yml | Remove Deno version helper workflow |
| .github/workflows/dependencies.yml | Remove Deno dependency update workflow |
| .github/copilot-instructions.md | Update repo description to Bun-first/npm |
| .github/actions/test/action.yml | Run build+lint+tests via Bun composite actions |
| .github/actions/install-build/action.yml | Add composite action for install + tsc build |
| .dvmrc | Remove Deno version pin |
| .devcontainer/devcontainer.json | Remove Deno devcontainer setup |
| packages/server/tsconfig.json | Add server package TS build config |
| packages/server/test/tsconfig.json | Add server test TS config |
| packages/server/test/index.test.ts | Port server tests to bun:test + snapshots |
| packages/server/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format |
| packages/server/src/middleware/castQueryArrayProps.ts | Switch local type imports to .js specifiers |
| packages/server/src/index.ts | Switch local imports to .js + reformat handlers |
| packages/server/package.json | Add server npm package metadata/scripts/deps |
| packages/server/jsr.json | Add server JSR config |
| packages/server/deno.json | Remove server Deno package config |
| packages/server/README.md | Update install/links and formatting for npm-era docs |
| packages/server/.vscode/launch.json | Switch debug config from Deno to Bun |
| packages/json-schema/tsconfig.json | Add json-schema package TS build config |
| packages/json-schema/test/tsconfig.json | Add json-schema test TS config |
| packages/json-schema/test/index.test.ts | Port json-schema tests to bun:test + snapshot |
| packages/json-schema/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format |
| packages/json-schema/src/index.ts | Switch es-toolkit import + reformat imports |
| packages/json-schema/src/cli.ts | Switch local import to .js specifier + formatting |
| packages/json-schema/package.json | Add json-schema npm package metadata/scripts/deps |
| packages/json-schema/jsr.json | Add json-schema JSR config |
| packages/json-schema/deno.json | Remove json-schema Deno package config |
| packages/json-schema/README.md | Update CLI usage examples for npm/Bun/Deno |
| packages/json-schema/.vscode/launch.json | Switch debug config from Deno to Bun |
| packages/fs/tsconfig.json | Add fs package TS build config |
| packages/fs/test/watch.test.ts | Port fs watch test to bun:test + Node fs APIs |
| packages/fs/test/tsconfig.json | Add fs test TS config |
| packages/fs/test/load.test.ts | Port fs load test to bun:test |
| packages/fs/src/watch.ts | Switch es-toolkit import + local .js specifiers + formatting |
| packages/fs/src/index.ts | Switch exports to .js specifiers |
| packages/fs/package.json | Add fs npm package metadata/scripts/deps |
| packages/fs/jsr.json | Add fs JSR config |
| packages/fs/deno.json | Remove fs Deno package config |
| packages/fs/README.md | Update install/docs formatting for npm-era docs |
| packages/explode/tsconfig.json | Add explode package TS build config |
| packages/explode/test/tsconfig.json | Add explode test TS config |
| packages/explode/test/explode.test.ts | Port explode tests to bun:test |
| packages/explode/src/index.ts | Switch exports to .js specifiers |
| packages/explode/src/explode.ts | Switch local type import to .js specifier + formatting |
| packages/explode/package.json | Add explode npm package metadata/scripts/deps |
| packages/explode/jsr.json | Add explode JSR config |
| packages/explode/deno.json | Remove explode Deno package config |
| packages/explode/README.md | Update install/docs formatting for npm-era docs |
| packages/date-range/tsconfig.json | Add date-range package TS build config |
| packages/date-range/test/tsconfig.json | Add date-range test TS config |
| packages/date-range/test/index.test.ts | Port date-range tests to bun:test + sinon fake timers |
| packages/date-range/package.json | Add date-range npm package metadata/scripts/deps |
| packages/date-range/jsr.json | Add date-range JSR config |
| packages/date-range/deno.json | Remove date-range Deno package config |
| packages/date-range/README.md | Update install/docs formatting for npm-era docs |
| packages/client/tsconfig.json | Add client package TS build config |
| packages/client/test/tsconfig.json | Add client test TS config |
| packages/client/test/queryToURLSearchParams.test.ts | Port queryToURLSearchParams tests to bun:test |
| packages/client/test/index.test.ts | Port client integration tests to bun:test + snapshots |
| packages/client/test/snapshots/index.test.ts.snap | Convert snapshots to Bun snapshot format |
| packages/client/src/index.ts | Switch local imports to .js + refactor response handling formatting |
| packages/client/package.json | Add client npm package metadata/scripts/deps |
| packages/client/jsr.json | Add client JSR config |
| packages/client/deno.json | Remove client Deno package config |
| packages/client/README.md | Update install/docs links for npm-era docs |
| packages/api/tsconfig.json | Add api package TS build config |
| packages/api/test/utils.test.ts | Port util tests to bun:test |
| packages/api/test/tsconfig.json | Add api test TS config |
| packages/api/test/parsers/switch.test.ts | Port switch parser tests to bun:test |
| packages/api/test/snapshots/Data.test.ts.snap | Convert snapshots to Bun snapshot format |
| packages/api/test/Data.test.ts | Port Data tests to bun:test + snapshots |
| packages/api/src/util.ts | Switch local type import to .js specifier + formatting |
| packages/api/src/types/Targeting.ts | Switch imports to .js + formatting |
| packages/api/src/types/Query.ts | Switch imports to .js + formatting |
| packages/api/src/types/Payload.ts | Switch imports to .js + formatting |
| packages/api/src/types/FallThroughTargeting.ts | Switch imports to .js + formatting |
| packages/api/src/types/Data.ts | Switch imports to .js + formatting |
| packages/api/src/predicates/targetIncludes.ts | Switch imports to .js + formatting |
| packages/api/src/predicates/equals.ts | Switch imports to .js + formatting |
| packages/api/src/parsers/attachVariableResolver.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/TargetingPredicates.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/TargetingPredicate.ts | Switch local imports to .js |
| packages/api/src/parsers/TargetingDescriptor.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItems.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItemVariablesParser.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItemVariableResolver.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItemRules.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItemRule.ts | Switch local imports to .js + formatting |
| packages/api/src/parsers/DataItem.ts | Switch local imports to .js + formatting |
| packages/api/src/index.ts | Switch all internal exports/imports to .js specifiers |
| packages/api/src/createTargetingDescriptor.ts | Switch local type import to .js + formatting |
| packages/api/src/PromisedData.ts | Switch imports to .js + formatting |
| packages/api/src/IData.ts | Switch imports to .js + formatting |
| packages/api/src/Data.ts | Switch imports to .js + formatting |
| packages/api/package.json | Add api npm package metadata/scripts/deps |
| packages/api/jsr.json | Add api JSR config |
| packages/api/deno.json | Remove api Deno package config |
| packages/api/README.md | Update install/docs formatting for npm-era docs |
| packages/api/.vscode/launch.json | Switch debug config from Deno to Bun |
You can also share your feedback on Copilot code review. Take the survey.
| "exports": "./src/index.ts", | ||
| "publish": { | ||
| "include": ["src/", "LICENSE", "README.md"] |
| release-jsr: | ||
| needs: [release-github, release-test] | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| matrix: | ||
| path_released: ${{ fromJson(needs.release-github.outputs.paths_released) }} | ||
| name: Publish ${{ matrix.path_released }} to JSR | ||
| environment: jsr | ||
| concurrency: | ||
| group: release-jsr-${{ matrix.path_released }} | ||
| container: | ||
| image: oven/bun:1 | ||
| permissions: | ||
| contents: read | ||
| id-token: write | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| - uses: denoland/setup-deno@v2 | ||
| with: | ||
| deno-version-file: .dvmrc | ||
| - uses: ./.github/actions/test | ||
| - uses: ./.github/actions/install-build | ||
| - working-directory: ${{ matrix.path_released }} | ||
| run: if [ "$(cat deno.json | jq -r '.private // false')" != "true" ]; then deno publish; fi | ||
| run: | # shell | ||
| PACK="$(pwd)/package.tgz" | ||
| bun pm pack --filename=$PACK | ||
| tar -xOf $PACK package/package.json > package.json | ||
| rm -rf package $PACK | ||
| bunx jsr publish |
| async function assertUsingFakeTime(iso: string, expectation: string) { | ||
| using _fakeTime = setTime(iso) | ||
| assertStrictEquals(await data.getPayload('foo'), expectation) | ||
| clock.setSystemTime(new Date(iso)) | ||
| expect(await data.getPayload('foo'), iso).toBe(expectation) | ||
| } |
| "fmt": "oxfmt", | ||
| "lint": "oxlint", | ||
| "prepare": "husky", | ||
| "start": "tsc --build --watch --preserveWatchOutput", |
No description provided.