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
Typescript issue: weird dependency on node-fetch in declaration file #96
First of all thanks for awesome polyfill @developit. It's brilliant and altogether with preact it makes a perfect match for our product bundle!
As for this issue I'm not sure why there's a dependency on node-fetch in declaration file. When I try to use unfetch in my TS code I get this:
ERROR in [at-loader] ./node_modules/unfetch/src/index.d.ts:6:8
TS7016: Could not find a declaration file for module 'node-fetch'. '/Users/dsorin/.../node_modules/node-fetch/index.js' implicitly has an 'any' type.
Try `npm install @types/node-fetch` if it exists or add a new declaration (.d.ts) file containing `declare module 'node-fetch';`
I know this can be fixed by installing typings for node-fetch but this leads to a further questions like "what's this typing doing in our dependencies if we don't use node-fetch package? let's remove it".
It was probably a mistake. Our project at the time was using isomorphic-unfetch which already specified node-fetch as a dependency and I likely conflated them. I see a definition of fetch in the TypeScript DOM library that can probably be used instead. I wish I could remember more detail but I think at the time there was also a difference in the quality of the typings and node-fetch provided something over fetch but that really only mattered to isomorphic-unfetch clients.
@1999, sure, I'm just a random contributor. It's up to @developit to merge it, of course! You may wish to validate that whatever replacement you choose maintains compatibility with isomorphic-unfetch in a headless Node.js environment without extra dependencies.
After thinking on this further and looking at the files in the files in my PR, I forgot that this repo actually houses both unfetch and isomorphic-unfetch. Maybe one complication I had was that my headless server code didn't use the TypeScript DOM library so it didn't have access to that fetch definition but I did have access to node-fetch typing in both client and server? Sorry, but I can't remember the details.
Is this why I'm getting a TypeScript error when I compile my project?
node_modules/unfetch/src/index.d.ts:7:8 - error TS2307: Cannot find module 'node-fetch' or its corresponding type declarations.
7 } from "node-fetch";
~~~~~~~~~~~~
If the typings in @types/node-fetch work, I don't know why it's a problem to just reuse those? But either way, it's currently an undeclared dependency - you have to get a build failure and then manually install the package, so I think either that should be fixed, or the dependency should be removed?
(I don't use the isomorphic stuff, so it's all the same to me - but having a broken dependency definitely isn't great.)
Same thoughts, my TypeScript build is breaking when using isomorphic-unfetch as a dependency. Even after an npm install --dev @types/node-fetch my TypeScript build is still broken.
Error: node_modules/isomorphic-unfetch/index.d.ts:7:8 - error TS7016: Could not find a declaration file for module 'node-fetch'. '/Users/dawsonbotsford/code/earn/essential-eth/node_modules/node-fetch/lib/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/node-fetch` if it exists or add a new declaration (.d.ts) file containing `declare module 'node-fetch';`
7 } from "node-fetch";
node_modules/isomorphic-unfetch/index.d.ts:7:8 - error TS7016: Could not find a declaration file for module 'node-fetch'. '/workspace/node_modules/node-fetch/lib/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/node-fetch` if it exists or add a new declaration (.d.ts) file containing `declare module 'node-fetch';`
7 } from "node-fetch";
~~~~~~~~~~~~
Activity
1999 commentedon Oct 13, 2018
Maybe @niedzielski knows the answer as the git blame author for this commit?
niedzielski commentedon Oct 13, 2018
It was probably a mistake. Our project at the time was using isomorphic-unfetch which already specified node-fetch as a dependency and I likely conflated them. I see a definition of fetch in the TypeScript DOM library that can probably be used instead. I wish I could remember more detail but I think at the time there was also a difference in the quality of the typings and node-fetch provided something over fetch but that really only mattered to isomorphic-unfetch clients.
1999 commentedon Oct 13, 2018
Gotcha. Are you okay if I send a PR to improve this?
niedzielski commentedon Oct 13, 2018
@1999, sure, I'm just a random contributor. It's up to @developit to merge it, of course! You may wish to validate that whatever replacement you choose maintains compatibility with isomorphic-unfetch in a headless Node.js environment without extra dependencies.
After thinking on this further and looking at the files in the files in my PR, I forgot that this repo actually houses both unfetch and isomorphic-unfetch. Maybe one complication I had was that my headless server code didn't use the TypeScript DOM library so it didn't have access to that fetch definition but I did have access to node-fetch typing in both client and server? Sorry, but I can't remember the details.
1999 commentedon Oct 14, 2018
Fair enough 👍
mindplay-dk commentedon Aug 2, 2021
Is this why I'm getting a TypeScript error when I compile my project?
If the typings in
@types/node-fetchwork, I don't know why it's a problem to just reuse those? But either way, it's currently an undeclared dependency - you have to get a build failure and then manually install the package, so I think either that should be fixed, or the dependency should be removed?(I don't use the isomorphic stuff, so it's all the same to me - but having a broken dependency definitely isn't great.)
dawsbot commentedon Sep 18, 2021
Same thoughts, my TypeScript build is breaking when using
isomorphic-unfetchas a dependency. Even after annpm install --dev @types/node-fetchmy TypeScript build is still broken.Any thoughts on fixing this in the core package?
nmemoto commentedon Oct 30, 2021
This event can probably be cured by
npm i --save-dev @types/node-fetch@2.5.12kaichii commentedon Jan 17, 2022
any progress?