elysiajs / elysia

Ergonomic Framework for Humans
https://elysiajs.com
MIT License
10.63k stars 226 forks source link

Elysia fails to generate types when used with path aliases #887

Open Pedromigacz opened 1 month ago

Pedromigacz commented 1 month ago

What version of Elysia is running?

elysia": "^1.1.22

What platform is your computer?

No response

What steps can reproduce the bug?

  1. Qucikstart an ElysiaJs project with bun create elysia app
  2. Add an import alias to your tsconfig.json. Ex:
    "paths": { "@/*": ["./*"] }
  3. Use this import alias anywhere on your code to import a ElysiaJs instance. The most obvious issue happens when you import an ElysiaJs instance that is used for route splitting.
  4. Your elysia main instace won't have the types of the other ones. This makes eden unusable as a side effect.

What is the expected behavior?

ElysiaJs should know how to handle with import aliases. Independent of them being on a monorepo or not.

What do you see instead?

Elysia type system breaks

Additional information

This might be happening on monorepos only. I will investigate once I find time and report back.

Have you try removing the node_modules and bun.lockb and try again yet?

Yes

Pedromigacz commented 1 month ago

I created this issue and this PR to warn users about this issue until I or someone figure out how to solve it.

kravetsone commented 1 month ago

They shouldn't break nothing. Does typings equal?

Pedromigacz commented 1 month ago

I will provide a easy way to reproduce the issue. Do you know, in the meantime, where can I find the generated types from elysia/eden?

kravetsone commented 1 month ago

I will provide a easy way to reproduce the issue. Do you know, in the meantime, where can I find the generated types from elysia/eden?

It is not generated Elysia is just TypeScript

ap0nia commented 1 month ago

You can use the references property in tsconfig.json to include the tsconfig from the backend in the frontend.

This is not an Elysia issue, this is a TypeScript configuration issue.