andywer / andywer/threads.js

Package is not compatible with NodeJS ESM

Offen
#496 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
3.5k
Forks
173
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The package exporting types for ESM incorrectly https://arethetypeswrong.github.io/?p=threads%401.7.0

Image

That causes problems on the ESM projects with Typescript:

>
> TS7016: Could not find a declaration file for module threads.
> /Users/timofei.Iatsenko/Projects/js-lingui/node_modules/threads/index.mjs
> implicitly has an any type.
> There are types at
> /Users/timofei.Iatsenko/Projects/js-lingui/node_modules/threads/dist/index.d.ts
> , but this result could not be resolved when respecting package.json exports. The threads library may need to update its package.json or typings.

Basically for every module type cjs / esm, there should be own version of typings

"./dist/index.cjs"
"./dist/index.d.cts"

"./dist/index.mjs"
"./dist/index.d.mts"

More explanation is provided here https://github.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md#common-causes

Currently `exports` field does not provide typings for ESM at all:

```ts
{
".": {
"require": "./dist/index.js",
"types": "./dist/index.d.ts",
"default": "./index.mjs"
},
"./observable": {
"require": "./observable.js",
"types": "./observable.d.ts",
"default": "./observable.mjs"
},
"./register": {
"require": "./register.js",
"types": "./register.d.ts",
"default": "./register.mjs"
},
"./worker": {
"require": "./worker.js",
"types": "./worker.d.ts",
"default": "./worker.mjs"
}
}
```

Note that just using the same `d.ts` file for the `mjs` target will not fix issue correctly, because it will masquerade ESM behind the CJS (read the article i provided above)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.