Skip to content

feat(typescript): dual CJS/ESM surface with named exports - #21

Merged
3leapsdave merged 1 commit into
mainfrom
esm-named-exports
Aug 24, 2026
Merged

feat(typescript): dual CJS/ESM surface with named exports#21
3leapsdave merged 1 commit into
mainfrom
esm-named-exports

Conversation

@3leapsdave

@3leapsdave 3leapsdave commented Aug 24, 2026

Copy link
Copy Markdown
Member

Adds an explicit dual CJS/ESM package export surface with matching runtime and declaration exports.

Verification: make prepush

- index.mjs: ESM facade re-exporting the CJS wrapper (single native instance)
- index.d.cts / index.d.mts: loader-specific declarations synced from index.d.ts
- package.json: nested exports with import/require conditions and compatibility aliases
- index.js: export the 5 lowercase channel functions at runtime
- drift guard + tarball proof wired into test/typecheck

Verification: npm test and npm run typecheck pass; 16 value exports, class
identity, and constant equivalence asserted in CI.

Generated by DeepSeek V4 Pro via OpenCode under supervision of @3leapsdave

Co-Authored-By: DeepSeek V4 Pro <noreply@3leaps.net>
Role: devlead
Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
@3leapsdave
3leapsdave merged commit 3045d13 into main Aug 24, 2026
26 checks passed
@3leapsdave
3leapsdave deleted the esm-named-exports branch August 24, 2026 18:24
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.

1 participant