fix(database): make effect-db Node-native#13
Merged
Conversation
Use Effect Node services and Node-compatible filesystem operations so published commands no longer require Bun. Keep Bun limited to workspace tooling and remove it from consumer engine metadata.
Exercise the packed config, migration, pull, and CLI paths under Node.js with Bun excluded from the CLI PATH.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the published packages Node-native across 26 files; local build, type, package, and Node 22/24 integration gates pass. Next step is v0.21.0 after merge.
Why
effect-dbconsumers currently inherit Bun requirements from the CLI and several published runtime paths even though Effect supports Node directly.PATH.Key Changes
Node runtime:
Bun.*runtime dependenciesPortable host services:
CLI behavior:
--log-level, includingdebugandnoneVerification:
PATHMechanical changes:
Risks & Testing Needed
Effect v4 beta APIs: the runtime and CLI use beta.98 platform primitives.
→ Keep the packed consumer and Node matrix checks required in CI.
Integration cost: the live suite now runs twice, once for each supported Node major.
→ The jobs run in parallel; Node 22 took about two minutes locally.
Source loading: discovery still uses dynamic module imports and
tinyglobbyfor existing glob semantics.→ Review changes to config/source loading carefully if supported extensions change later.
Not tested:
Build status: pass locally on Node 22 and Node 24
Test Plan
bun test bun run build bun run test:types bun run test:pack bun run test:integration mise x node@22 -- bun run test:integrationExpected:
effect-dbloads config, reads/writes migrations, applies pull output, and plans PostgreSQL changesRollback
This restores the Bun-bound published runtime and the previous single-version CI coverage.