@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 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(),u=this.db.stores;for(const t of i)n[t]={useFind:(r,n=[])=>e.useQuery({...r,queryKey:[t,"find",r.query,...n],queryFn:()=>u[t].find(r.query)}),useFindFirst:(r,n=[])=>e.useQuery({...r,queryKey:[t,"findFirst",r.query,...n],queryFn:()=>u[t].findFirst(r.query)}),useGet:(r,n=[])=>{e.useQuery({...r,queryKey:[t,"get",r.key,...n],queryFn:()=>u[t].get(r.key)})}};return{...n,useClient:()=>t.useContext(r)}}}exports.createIDBQueryClient=function(n,i){const u=new r(n,i),s=t.createContext({});return{queryClient:u,context:s,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(s.Provider,{value:i},n))},stores:u.createInterface(s)}};
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
- type QueryOptions<O> = Omit<UndefinedInitialDataOptions<O>, "queryFn" | "queryKey">;
5
- interface ModelQueryInterface<M extends Model<any, any, any>, Names extends string, Models extends core.CollectionObject<Names>> {
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: M extends Model<any, infer Fields, any> ? <O = core.Simplify<core.ModelStructure<Fields, Models>>>(primaryKey: {
10
- key: core.PrimaryKeyType<M>;
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, M, Models>, O = core.Simplify<NonNullable<core.FindOutput<Names, M, Models, I>>>[]>(options: QueryOptions<O> & {
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, M, Models>, O = core.Simplify<core.FindOutput<Names, M, Models, I>>>(options: QueryOptions<O> & {
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<Models[K], Names, Models>;
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 i(t,r){const i=new o(t,r),s=n.createContext({});return{queryClient:i,context:s,Provider:({client:t,children:r})=>{const i=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:i},r))},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 n of i)t[n]={useFind:(e,t=[])=>r({...e,queryKey:[n,"find",e.query,...t],queryFn:()=>o[n].find(e.query)}),useFindFirst:(e,t=[])=>r({...e,queryKey:[n,"findFirst",e.query,...t],queryFn:()=>o[n].findFirst(e.query)}),useGet:(e,t=[])=>{r({...e,queryKey:[n,"get",e.key,...t],queryFn:()=>o[n].get(e.key)})}};return{...t,useClient:()=>n.useContext(e)}}}export{i as createIDBQueryClient};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idb-orm/react-query",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "An adapter for the Tanstack React-Query library for @idb-orm",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {