feat: produce a dual ESM/CJS build#401
Conversation
Inline async pool to remove it as the only CJS-style required runtime dependency. Info: about tiny-async-pool: - URL: https://github.com/rxaviers/async-pool - License: MIT - Author: Rafael Xavier de Souza | https://github.com/rxaviers
Separates crypto-free utilities from generate-random-id.ts (which imports from "crypto"). This allows consumers to import from utils/utils-lite without pulling in the crypto dependency. We faced this issue recently when we tried to use assertNever from this lib in syntaxt-transformer
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feat/drop-axios #401 +/- ##
===================================================
- Coverage 86.41% 86.24% -0.17%
===================================================
Files 25 27 +2
Lines 1354 1374 +20
Branches 287 263 -24
===================================================
+ Hits 1170 1185 +15
- Misses 111 116 +5
Partials 73 73 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Pulls the fetch-based HTTP client + the FgaApiAuthenticationError re-wrap path (PR #329) into the WIP ESM/CJS dual-build branch. Conflicts: * package.json — kept ESM build setup (main / module / exports fields, build:cjs / build:esm / build:post scripts) AND took drop-axios's newer dep versions inherited from main: jest 30.3.0, ts-jest 29.4.9, eslint ^10.3.0, typescript ^6.0.3, nock ^14.0.14, @types/node ^25.6.0, @typescript-eslint/* ^8.59.2, @opentelemetry/api ^1.9.1. Removed tiny-async-pool + @types/tiny-async-pool (this branch already replaced tiny-async-pool with a native impl). * package-lock.json — regenerated via \`npm install\`. 0 axios entries, 0 tiny-async-pool entries, 0 vulnerabilities. * tests/apiExecutor.test.ts, tests/credentials.test.ts, tests/headers.test.ts — pure import-style conflicts. Kept this branch's \`.js\` extensions on every relative import (mandatory for ESM resolution) and drop-axios's default \`import nock from "nock"\` shape (nock 14's main entry is callable only via the default export; \`import * as nock\` works for namespace methods but breaks \`nock(url)\` calls). credentials.test.ts also kept the FgaApiAuthenticationError import that PR #329's tests need (it was lost on this branch when feat/esm-modules forked from the pre-#329 base). Files auto-merged: credentials/credentials.ts, errors.ts (which now includes PR #329's re-wrap branch in FgaApiAuthenticationError — typed \`HttpErrorContext | FgaApiError\` with optional context arg), tests/client.test.ts, tests/index.test.ts, tests/jest.config.js, tests/helpers/nocks.ts, tsconfig.json. Build (cjs + esm) clean. Tests: 302 passed across 15 suites.
Description
This, coupled with dropping axios, should address #17 #72
What problem is being solved?
How is it being solved?
What changes are made to solve it?
References
Review Checklist
mainInline async pool to remove it as the only CJS-style required runtime dependency.
Info: about tiny-async-pool: