Skip to content

Bun#862

Closed
johngeorgewright wants to merge 18 commits into
masterfrom
bun
Closed

Bun#862
johngeorgewright wants to merge 18 commits into
masterfrom
bun

Conversation

@johngeorgewright

Copy link
Copy Markdown
Collaborator

No description provided.

Having serious problems with the release process and deno.
Copilot AI review requested due to automatic review settings March 16, 2026 21:11
Comment thread .github/workflows/pull-request.yml Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json files, and oxc lint/format configuration.
  • Convert tests from Deno.test + @std/* asserts/snapshots to bun:test with 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.

Comment thread .github/workflows/release.yml Outdated
Comment thread packages/fs/test/watch.test.ts
Comment thread packages/server/test/index.test.ts Outdated
Comment thread .github/actions/test/action.yml Outdated
Comment thread .github/actions/test/action.yml
johngeorgewright and others added 2 commits March 16, 2026 21:32
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 16, 2026 21:34
johngeorgewright and others added 2 commits March 16, 2026 21:35
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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/workspace package.json, Bun workflows, bun:test).
  • Add TypeScript project config via root tsconfig.json plus per-package tsconfig.json/test/tsconfig.json.
  • Introduce JSR publishing configuration via per-package jsr.json and 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.

Comment thread packages/client/src/index.ts Outdated
Comment thread packages/fs/test/watch.test.ts
Copilot AI review requested due to automatic review settings March 16, 2026 21:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread packages/client/src/index.ts
Comment thread packages/server/src/index.ts
Comment thread packages/fs/test/watch.test.ts
Comment thread .husky/pre-commit
Comment thread .husky/commit-msg
Copilot AI review requested due to automatic review settings March 17, 2026 10:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-package tsconfig.json) and adds root/workspace package.json + Bun/oxc tooling configs.
  • Migrates tests from Deno.test/@std/* snapshots to bun:test and Bun snapshot format across packages.
  • Updates GitHub Actions and release configuration to run on Bun and publish (including adding package.json/jsr.json per package, removing deno.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.

Comment thread packages/explode/package.json
Comment thread packages/date-range/package.json
Comment thread packages/json-schema/package.json
Comment thread packages/server/.vscode/launch.json Outdated
Comment thread .github/workflows/release.yml
Comment thread .husky/commit-msg
Comment thread packages/api/package.json Outdated
Comment thread packages/client/package.json
Comment thread packages/server/package.json
Comment thread packages/fs/package.json
Copilot AI review requested due to automatic review settings March 17, 2026 11:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json files and introduce npm workspaces with package.json per package.
  • Migrate tests from Deno.test/@std/* assertions to bun:test and 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.

Comment thread .github/actions/install-build/action.yml Outdated
Comment thread packages/fs/test/watch.test.ts
Comment thread packages/client/src/index.ts
Comment thread packages/api/jsr.json
Comment on lines +5 to +7
"exports": "./src/index.ts",
"publish": {
"include": ["src/", "LICENSE", "README.md"]
Comment on lines +59 to +83
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
Comment on lines 55 to 58
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)
}
Comment thread package.json
"fmt": "oxfmt",
"lint": "oxlint",
"prepare": "husky",
"start": "tsc --build --watch --preserveWatchOutput",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants