You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
index.d.cts makes CommonJS TypeScript projects using module: node16 fail with TS1479 #850
A CommonJS TypeScript project that uses module: node16 and skipLibCheck: false cannot type-check an import of reactfire. I found this while reviewing #838, and it is already true on main.
What happens
tsc reports TS1479 on every line of node_modules/reactfire/dist/index.d.cts that imports or re-exports a local file: "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'."
With skipLibCheck: true the errors go away and the imported types still resolve correctly, so projects with that setting are not affected.
attw reports all four resolution modes green, so the CI "Verify package" job does not catch it.
Steps to reproduce
Create a project with no "type" field in its package.json and a tsconfig.json with module and moduleResolution set to node16, skipLibCheck: false.
Install reactfire (I used a tarball packed from main at eb3376a), firebase 13.1.0 and React 19.
Import useUser from reactfire in a .ts file and run tsc.
Cause, as far as I can tell
The build:types-cjs script copies dist/index.d.ts to dist/index.d.cts, so the two files are identical.
The .d.cts file is treated as CommonJS, but it re-exports from ./auth.js and the other per-module declarations, which sit in a "type": "module" package and are therefore ESM.
I have not tried a fix. If emitting real CommonJS declarations is more than this is worth, documenting skipLibCheck: true for CommonJS projects may be enough.
Activity