@idb-orm/react-query 0.0.0 → 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.es.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ useQuery({
|
|
|
19
19
|
stores.users.useFind({ where: { id: userId } }, [userId]);
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
The package manages the internal query keys to ensure there is no overlap, and you can state an optional dependency array similar to
|
|
22
|
+
The package manages the internal query keys to ensure there is no overlap, and you can state an optional dependency array similar to traditional react hooks like `useMemo` and `useEffect`.
|
|
23
23
|
|
|
24
24
|
## Installation
|
|
25
25
|
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@tanstack/react-query"),t=require("react");class r extends e.QueryClient{constructor(e,t){super(t),this.db=e}createInterface(r){const n={},i=this.db.getStoreNames(),s=this.db.stores;for(const t of i)n[t]={useFind:(r,n=[])=>e.useQuery({...r,queryKey:[t,"find",...n],queryFn:()=>s[t].find(r.query)}),useFindFirst:(r,n=[])=>e.useQuery({...r,queryKey:[t,"findFirst",...n],queryFn:()=>s[t].findFirst(r.query)}),useGet:r=>{e.useQuery({...r,queryKey:[t,"get",r.key],queryFn:()=>s[t].get(r.key)})}};return{...n,useClient:()=>t.useContext(r)}}}exports.createIDBQueryClient=function(n,i){const s=new r(n,i),u=t.createContext({});return{queryClient:s,context:u,Provider:({client:r,children:n})=>{const i=t.useMemo(()=>{function e(e){return{invalidate:()=>r.invalidateQueries({queryKey:e})}}const t=e([]),n=r.db.getStoreNames();for(const r of n)"invalidate"===r&&console.warn("Model name 'invalidate' causes the invalidate() function of useClient() to not work. Please fix by renaming the model."),t[r]={...e([r]),get:e([r,"get"]),find:e([r,"find"]),findFirst:e([r,"findFirst"])};return t},[r]);return
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@tanstack/react-query"),t=require("react");class r extends e.QueryClient{constructor(e,t){super(t),this.db=e}createInterface(r){const n={},i=this.db.getStoreNames(),s=this.db.stores;for(const t of i)n[t]={useFind:(r,n=[])=>e.useQuery({...r,queryKey:[t,"find",...n],queryFn:()=>s[t].find(r.query)}),useFindFirst:(r,n=[])=>e.useQuery({...r,queryKey:[t,"findFirst",...n],queryFn:()=>s[t].findFirst(r.query)}),useGet:r=>{e.useQuery({...r,queryKey:[t,"get",r.key],queryFn:()=>s[t].get(r.key)})}};return{...n,useClient:()=>t.useContext(r)}}}exports.createIDBQueryClient=function(n,i){const s=new r(n,i),u=t.createContext({});return{queryClient:s,context:u,Provider:({client:r,children:n})=>{const i=t.useMemo(()=>{function e(e){return{invalidate:()=>r.invalidateQueries({queryKey:e})}}const t=e([]),n=r.db.getStoreNames();for(const r of n)"invalidate"===r&&console.warn("Model name 'invalidate' causes the invalidate() function of useClient() to not work. Please fix by renaming the model."),t[r]={...e([r]),get:e([r,"get"]),find:e([r,"find"]),findFirst:e([r,"findFirst"])};return t},[r]);return t.createElement(e.QueryClientProvider,{client:r},t.createElement(u.Provider,{value:i},n))},stores:s.createInterface(u)}};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { core, Model } from '@idb-orm/core';
|
|
2
2
|
import { QueryClient, DefinedUseQueryResult, UndefinedInitialDataOptions, QueryClientConfig } from '@tanstack/react-query';
|
|
3
|
-
import {
|
|
3
|
+
import { default as React } from 'react';
|
|
4
4
|
type QueryOptions<O> = Omit<UndefinedInitialDataOptions<O>, "queryFn" | "queryKey">;
|
|
5
5
|
interface ModelQueryInterface<M extends Model<any, any, any>, Names extends string, Models extends core.CollectionObject<Names>> {
|
|
6
6
|
/**
|
|
@@ -11,10 +11,10 @@ interface ModelQueryInterface<M extends Model<any, any, any>, Names extends stri
|
|
|
11
11
|
} & QueryOptions<O>) => DefinedUseQueryResult<O | undefined> : never;
|
|
12
12
|
useFind: <I extends core.FindInput<Names, M, Models>, O = core.Simplify<NonNullable<core.FindOutput<Names, M, Models, I>>>[]>(options: QueryOptions<O> & {
|
|
13
13
|
query: I;
|
|
14
|
-
}, deps?: DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
14
|
+
}, deps?: React.DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
15
15
|
useFindFirst: <I extends core.FindInput<Names, M, Models>, O = core.Simplify<core.FindOutput<Names, M, Models, I>>>(options: QueryOptions<O> & {
|
|
16
16
|
query: I;
|
|
17
|
-
}, deps?: DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
17
|
+
}, deps?: React.DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
18
18
|
}
|
|
19
19
|
interface ModelQueryClient {
|
|
20
20
|
invalidate(): Promise<void>;
|
|
@@ -28,16 +28,16 @@ type IDBClientInterface<Names extends string, _Models extends core.CollectionObj
|
|
|
28
28
|
} & ModelQueryClient>;
|
|
29
29
|
export declare function createIDBQueryClient<Names extends string, Models extends core.CollectionObject<Names>>(client: core.DbClient<string, Names, Models>, config?: QueryClientConfig): {
|
|
30
30
|
queryClient: IDBQueryClient<Names, Models>;
|
|
31
|
-
context:
|
|
31
|
+
context: React.Context<{ [K_1 in Names]: {
|
|
32
32
|
get: ModelQueryClient;
|
|
33
33
|
findFirst: ModelQueryClient;
|
|
34
34
|
find: ModelQueryClient;
|
|
35
35
|
} & {
|
|
36
36
|
invalidate: () => Promise<void>;
|
|
37
37
|
}; } & ModelQueryClient extends infer T ? { [K in keyof T]: T[K]; } : never>;
|
|
38
|
-
Provider: ({ client, children, }: PropsWithChildren<{
|
|
38
|
+
Provider: ({ client, children, }: React.PropsWithChildren<{
|
|
39
39
|
client: IDBQueryClient<Names, Models>;
|
|
40
|
-
}>) =>
|
|
40
|
+
}>) => React.JSX.Element;
|
|
41
41
|
stores: IDBQueryInterface<Names, Models>;
|
|
42
42
|
};
|
|
43
43
|
declare class IDBQueryClient<Names extends string, Models extends core.CollectionObject<Names>> extends QueryClient {
|
package/dist/index.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{QueryClientProvider as e,QueryClient as t,useQuery as
|
|
2
|
-
return
|
|
1
|
+
import{QueryClientProvider as e,QueryClient as t,useQuery as n}from"@tanstack/react-query";import r from"react";function i(t,n){const i=new o(t,n),s=r.createContext({});return{queryClient:i,context:s,Provider:({client:t,children:n})=>{const i=r.useMemo(()=>{function e(e){return{invalidate:()=>t.invalidateQueries({queryKey:e})}}const n=e([]),r=t.db.getStoreNames();for(const t of r)"invalidate"===t&&console.warn("Model name 'invalidate' causes the invalidate() function of useClient() to not work. Please fix by renaming the model."),n[t]={...e([t]),get:e([t,"get"]),find:e([t,"find"]),findFirst:e([t,"findFirst"])};return n},[t]);/* @__PURE__ */
|
|
2
|
+
return r.createElement(e,{client:t},/* @__PURE__ */r.createElement(s.Provider,{value:i},n))},stores:i.createInterface(s)}}class o extends t{constructor(e,t){super(t),this.db=e}createInterface(e){const t={},i=this.db.getStoreNames(),o=this.db.stores;for(const r of i)t[r]={useFind:(e,t=[])=>n({...e,queryKey:[r,"find",...t],queryFn:()=>o[r].find(e.query)}),useFindFirst:(e,t=[])=>n({...e,queryKey:[r,"findFirst",...t],queryFn:()=>o[r].findFirst(e.query)}),useGet:e=>{n({...e,queryKey:[r,"get",e.key],queryFn:()=>o[r].get(e.key)})}};return{...t,useClient:()=>r.useContext(e)}}}export{i as createIDBQueryClient};
|