Open myftija opened 1 year ago
I cannot reproduce. Can you push your file and tsconfig to a repo?
@mcollina this happens when using pnpm, and probably recent versions of yarn (I haven't tried them but I've heard they're more restrictive than npm). You don't explicitly declare fastify
as a dependency or peerDependency, but still import it in index.d.ts
, which makes it a phantom dependency. It's all fine if the consumer is using npm, because npm allows phantom dependencies. But if they use pnpm, when you try to import FastifyTypeProvider
from fastify
, you get an unknown type because fastify
is not declared as a dependency and thus not accessible from your modules:
Adding this to my package.json fixed the issue for me:
"pnpm": {
"packageExtensions": {
"@fastify/type-provider-typebox@^3.6.0": {
"peerDependencies": {
"fastify": "^4.16.0"
}
}
}
}
Needless to say, I think it should be permanently fixed by adding the peerDependency to your package.
The same issue occurs in recent versions of Yarn. I discovered this while updating to 5.x. The problem can be worked around by adding the following to .yarnrc.yml
in a Yarn project's root:
packageExtensions:
"@fastify/type-provider-typebox@5.x":
peerDependencies:
"fastify": "5.x"
Prerequisites
Fastify version
4.24.3
Plugin version
3.5.0
Node.js version
18.15.0
Operating system
macOS
Operating system version (i.e. 20.04, 11.3, 10)
Ventura 13.5.1
Description
TypeBoxTypeProvider
produces a type error in version 3.5.0. I am not facing this issue in version 3.1.0.Steps to Reproduce
This produces a type error:
Typescript version: 5.0.4
Expected Behavior
No response