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
Hope you are having a wonderful holiday! I am the maintainer of the TanStack solid-query package and we are running into a peculiar issue that I am not really sure if this is a vite-plugin-solid issue or maybe something with the vite resolver itself.
Overview
Recently, We moved solid-query to follow the patterns set up by Solid Lib Starter where the root of the library is exported by an index.tsx file. Previously we were using index.ts to export all our internal modules
For solid-query to work, it needs a Context Provider at the top level to share the query cache to its component subtree. The implementation detail of which doesn't matter. I have created a very simple reproduction that removes all external dependencies to make it easy to pinpoint the issue.
Example 1 (Reproduction)
Here is a small example library that simulates the issue.
queryClient.ts contains a class which contains a counter.
queryClientProvider.ts contains two functions
QueryClientProvider that will be used to provide an instance of QueryClient to the component subtree using a Context
useQueryClient that will consume the context and return the instance of QueryClient
createQuery.ts has a primitive that will internally consume the client using useQueryClient and spit out the count
index.tsx just reexports all the functions/components above
If we use this library in dev mode with vite. It causes an error
Uncaught Error: No QueryClient set, use QueryClientProvider to set one
at useQueryClient (QueryClientProvider.jsx:7:15)
at createQuery (createQuery.js?v=9181a141:4:25)
at App (index.tsx:11:17)
at chunk-ECDBB74H.js?v=9181a141:557:12
at untrack (chunk-ECDBB74H.js?v=9181a141:448:12)
at Object.fn (chunk-ECDBB74H.js?v=9181a141:553:37)
at runComputation (chunk-ECDBB74H.js?v=9181a141:755:22)
at updateComputation (chunk-ECDBB74H.js?v=9181a141:738:3)
at devComponent (chunk-ECDBB74H.js?v=9181a141:564:3)
at createComponent (chunk-ECDBB74H.js?v=9181a141:1330:10)
Is this behavior expected? What is the reason index.tsx doesn't work but index.ts works here? What is the convention you recommend we follow for future versions of SolidJS libraries going forward?
Good Evening!
Hope you are having a wonderful holiday! I am the maintainer of the TanStack
solid-query
package and we are running into a peculiar issue that I am not really sure if this is avite-plugin-solid
issue or maybe something with the vite resolver itself.Overview
Recently, We moved
solid-query
to follow the patterns set up by Solid Lib Starter where the root of the library is exported by anindex.tsx
file. Previously we were usingindex.ts
to export all our internal modulesFor
solid-query
to work, it needs a Context Provider at the top level to share the query cache to its component subtree. The implementation detail of which doesn't matter. I have created a very simple reproduction that removes all external dependencies to make it easy to pinpoint the issue.Example 1 (Reproduction)
Here is a small example library that simulates the issue.
https://github.com/ardeora/solid-lib-starter/tree/cc4fa3ce988b74ad9fe6d791fd3bcedb9ded98f3
Directory structure
queryClient.ts
contains aclass
which contains a counter.queryClientProvider.ts
contains two functionsQueryClientProvider
that will be used to provide an instance ofQueryClient
to the component subtree using aContext
useQueryClient
that will consume the context and return the instance ofQueryClient
createQuery.ts
has a primitive that will internally consume the client usinguseQueryClient
and spit out the countindex.tsx
just reexports all the functions/components aboveIf we use this library in dev mode with vite. It causes an error
Live Preview of the issue mentioned above
Example 2 (Reproduction)
The second example is the exact same thing. EXCEPT,
index.tsx
is changed toindex.ts
https://github.com/ardeora/solid-lib-starter/tree/main/src
And now the library works as expected
Live Preview of the working version
Is this behavior expected? What is the reason
index.tsx
doesn't work butindex.ts
works here? What is the convention you recommend we follow for future versions of SolidJS libraries going forward?Referencing the
solid-query
issue here as well TanStack/query#4673Thanks a lot in advance!
Aryan
The text was updated successfully, but these errors were encountered: