@idb-orm/react-query 0.0.2 → 0.0.3
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/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.es.js +2 -2
- package/package.json +1 -1
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(),
|
|
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(),o=this.db.stores;for(const t of i)n[t]={useFind:(r,n=[])=>e.useQuery({...r,queryKey:[t,"find",r.query,...n],queryFn:()=>o[t].find(r.query)}),useFindFirst:(r,n=[])=>e.useQuery({...r,queryKey:[t,"findFirst",r.query,...n],queryFn:()=>o[t].findFirst(r.query)}),useGet:(r,n=[])=>{e.useQuery({...r,queryKey:[t,"get",r.key,...n],queryFn:()=>o[t].get(r.key)})}};return{...n,useClient:()=>{const e=t.useContext(r);if(!e)throw new Error("Query Context Not Found. Make sure you wrap your application in the <Provider/> Component.");return e}}}}exports.createIDBQueryClient=function(n,i){const o=new r(n,i),u=t.createContext({});return{queryClient:o,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:o.createInterface(u)}};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { core, Model } from '@idb-orm/core';
|
|
2
2
|
import { QueryClient, DefinedUseQueryResult, UndefinedInitialDataOptions, QueryClientConfig } from '@tanstack/react-query';
|
|
3
3
|
import { default as React } from 'react';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
interface QueryOptions<O> extends Omit<UndefinedInitialDataOptions<O>, "queryFn" | "queryKey"> {
|
|
5
|
+
}
|
|
6
|
+
interface ModelQueryInterface<Name extends Names, Names extends string, Models extends core.CollectionObject<Names>> {
|
|
6
7
|
/**
|
|
7
8
|
* Query instance on a particular primary key. This query will acquire **only** the given document and no related documents.
|
|
8
9
|
*/
|
|
9
|
-
useGet:
|
|
10
|
-
key: core.PrimaryKeyType<
|
|
10
|
+
useGet: Models[Name] extends Model<any, infer Fields, any> ? <O = core.Simplify<core.ModelStructure<Fields, Models>>>(primaryKey: {
|
|
11
|
+
key: core.PrimaryKeyType<Models[Name]>;
|
|
11
12
|
} & QueryOptions<O>, deps?: React.DependencyList) => DefinedUseQueryResult<O | undefined> : never;
|
|
12
|
-
useFind: <I extends core.FindInput<Names,
|
|
13
|
+
useFind: <I extends core.FindInput<Names, Name, Models>, O = core.Simplify<NonNullable<core.FindOutput<Names, Name, Models, I>>>[]>(options: QueryOptions<O> & {
|
|
13
14
|
query: I;
|
|
14
15
|
}, deps?: React.DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
15
|
-
useFindFirst: <I extends core.FindInput<Names,
|
|
16
|
+
useFindFirst: <I extends core.FindInput<Names, Name, Models>, O = core.Simplify<core.FindOutput<Names, Name, Models, I>>>(options: QueryOptions<O> & {
|
|
16
17
|
query: I;
|
|
17
18
|
}, deps?: React.DependencyList) => DefinedUseQueryResult<O | undefined>;
|
|
18
19
|
}
|
|
@@ -48,6 +49,6 @@ declare class IDBQueryClient<Names extends string, Models extends core.Collectio
|
|
|
48
49
|
export type IDBQueryInterface<Names extends string, Models extends core.CollectionObject<Names>> = {
|
|
49
50
|
useClient(): IDBClientInterface<Names, Models>;
|
|
50
51
|
} & {
|
|
51
|
-
[K in Names]: ModelQueryInterface<
|
|
52
|
+
[K in Names]: ModelQueryInterface<K, Names, Models>;
|
|
52
53
|
};
|
|
53
54
|
export {};
|
package/dist/index.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{QueryClientProvider as e,QueryClient as t,useQuery as r}from"@tanstack/react-query";import n from"react";function
|
|
2
|
-
return n.createElement(e,{client:t},/* @__PURE__ */n.createElement(s.Provider,{value:
|
|
1
|
+
import{QueryClientProvider as e,QueryClient as t,useQuery as r}from"@tanstack/react-query";import n from"react";function o(t,r){const o=new i(t,r),s=n.createContext({});return{queryClient:o,context:s,Provider:({client:t,children:r})=>{const o=n.useMemo(()=>{function e(e){return{invalidate:()=>t.invalidateQueries({queryKey:e})}}const r=e([]),n=t.db.getStoreNames();for(const t of n)"invalidate"===t&&console.warn("Model name 'invalidate' causes the invalidate() function of useClient() to not work. Please fix by renaming the model."),r[t]={...e([t]),get:e([t,"get"]),find:e([t,"find"]),findFirst:e([t,"findFirst"])};return r},[t]);/* @__PURE__ */
|
|
2
|
+
return n.createElement(e,{client:t},/* @__PURE__ */n.createElement(s.Provider,{value:o},r))},stores:o.createInterface(s)}}class i extends t{constructor(e,t){super(t),this.db=e}createInterface(e){const t={},o=this.db.getStoreNames(),i=this.db.stores;for(const n of o)t[n]={useFind:(e,t=[])=>r({...e,queryKey:[n,"find",e.query,...t],queryFn:()=>i[n].find(e.query)}),useFindFirst:(e,t=[])=>r({...e,queryKey:[n,"findFirst",e.query,...t],queryFn:()=>i[n].findFirst(e.query)}),useGet:(e,t=[])=>{r({...e,queryKey:[n,"get",e.key,...t],queryFn:()=>i[n].get(e.key)})}};return{...t,useClient:()=>{const t=n.useContext(e);if(!t)throw new Error("Query Context Not Found. Make sure you wrap your application in the <Provider/> Component.");return t}}}}export{o as createIDBQueryClient};
|