Fix ESM import issues causing model.fork() crashes #933
+25
−0
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.
The
model.fork()
method was crashing when using ESM imports due to Node.js ESM module resolution issues with directory imports and missing file extensions.Problem
When using ESM imports like:
The error occurred because:
/index.js
for directory imports likeexport * from './nodes'
.js
extensions in ESM buildsSolution
This PR provides two working approaches:
Option 1: ESM Wrapper (Immediate Solution)
Created
esm/json-crdt-wrapper.mjs
that provides a working ESM import by re-exporting from the stable CommonJS build:Option 2: Fixed Direct ESM Imports
Applied systematic fixes to resolve directory imports in critical files:
src/json-crdt/index.ts
exports to use explicit pathspackage.json
files in key directories for proper ESM resolutionVerification
All existing tests pass, and comprehensive testing confirms that:
model.fork()
works correctly in ESM environmentsFixes #926.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.