-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type reflection issues #798
Comments
This seems too specific to GraphQL to be something that we could really address without more details as to what the cause of the issue is. You might try seeing if this happens with a standard Vite app: |
Same thing occurs with mikro-orm and typeorm. I'll try creating a vite app to see if it's related. |
It works perfectly fine with vite considering the ssr is created by the user. I'm not sure how I could replicate this issue within vite without SvelteKit. |
@benmccann Do you think if I wrote a plugin for vite and included it in |
This comment has been minimized.
This comment has been minimized.
Comment from @dummdidumm on the duplicate issue #1327:
Here's the issue in the esbuild repo: evanw/esbuild#257 Maybe we should document this in troubleshooting/FAQ |
(in relation of #1327) according to this comment, there is no tsc plugin for Vite (yet?). |
I found this npm package from a quick search, but I haven't tested it. |
I'm not sure if this will help anyone or if you have a better solution, but here's the link #349 to a "solution" on another thread where I was asking for help regarding the ESM error that I was getting that is similar to what you're experiencing. If you do have a better solution please share. |
Is there any update on this? TypeORM uses reflect-metadata and decorators which aren't supported by esbuild apparently so it's very difficult or maybe impossible to use one of the most popular ORMS with SvelteKit in addition to GraphQL :( It seems that maybe swc or some other builder could work, but there are no hooks in the sveltekit code that I'm aware of that can replace just the esbuild step. (Actually I don't understand the architecture well enough to know if that sentence even makes sense.) |
|
Hm ok interesting! Maybe I misunderstood the original bug then, or misinterpreted the resulting discussion? My understanding is that vite uses esbuild under the hood so on a development server getting the type reflection metadata (like decorators) is impossible, which makes using libraries like the GraphQL adder or TypeORM difficult or impossible. I made a test repo for TypeORM/SvelteKit here. I'm getting a warning from the dev server when importing reflect-metadata — maybe this is the root issue? Then I get a "ColumnTypeUndefinedError" and the User entity is undefined. This is what happens when decorators aren't supported. Not sure if this is a SvelteKit thing or what, but I believe I have all the correct TypeORM settings listed on the quickstart. |
Vite uses esbuild under the hood, but only for pre-bundling third-party libraries. It uses Rollup for the user's own code.
To be quite honest with you, I don't think anyone from the team would look at a TypeORM issue since it's somewhat uncommon and only happens with a technology none of us use. Just in terms of the huge number of issues we have, it's not going to be high enough priority that it'll really get looked at, so it needs to be someone from the community motivated to figure out what the issue is. |
Ah, thanks for the clear answer! Maybe I'll grab someone from Discord. I'd like to confirm that there's nothing about SvelteKit that precludes TypeORM from working since TypeORM is the number 1 starred JS ORM on Github (and I'd like to use it 🙂) |
@Glench I will try to look on this once again, I was trying to use TypeORM with SvelteKit too several months ago, but I had problem with Vite and esbuild too, although, there was some other issues with bundling too (which might still happen now?). |
Awesome! I made a thread about the TypeORM stuff here for reference: https://www.reddit.com/r/sveltejs/comments/s0nov1/getting_errors_with_typeorm_and_sveltekit_any/ Going to try not to keep spamming here in the discussion of this issue :) |
Here's some discussion of this issue: #3334 |
Describe the bug
Typescript metadata reflection does not seem to work at all. At first I thought it was related to the graphql adder, but it turns out that type-graphql works perfectly fine outside of sveltekit in an api folder served by
vercel dev
. This is not a permanent solution though considering there are existing issues pertaining to MIME types: #781.Logs
This is produced in both the response and the dev console (not browser).
To Reproduce
Create a new sveltekit project, use graphql adder, and create an object and resolver using type-graphql.
You can also look here: https://github.com/MirrorBytes/phorm-kit-vercel
Expected behavior
For metadata reflection to function.
Information about your SvelteKit Installation:
Your browser
Brave & Safari
Your adapter (e.g. Node, static, Vercel, Begin, etc...)
Vercel
Severity
How severe an issue is this bug to you? Is this annoying, blocking some users, blocking an upgrade or blocking your usage of SvelteKit entirely?
It's a hindrance to me and potentially anyone using TypeScript with decorators.
I'm reproducing an existing project that currently exists in plain Svelte, so it's just a mild inconvenience at the moment, but it's ultimately blocking me from moving forward with SvelteKit.
The text was updated successfully, but these errors were encountered: