@drizzle-graphql-suite/client 0.8.2 → 0.8.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/client.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { BuildSchemaConfig } from '@drizzle-graphql-suite/schema';
2
2
  import { type EntityClient } from './entity';
3
3
  import type { InferEntityDefs } from './infer';
4
- import type { AnyEntityDefs, ClientConfig, SchemaDescriptor } from './types';
4
+ import type { AnyEntityDefs, ClientConfig, EntityDefsRef, SchemaDescriptor } from './types';
5
5
  export declare class GraphQLClient<TSchema extends SchemaDescriptor, TDefs extends AnyEntityDefs = AnyEntityDefs> {
6
6
  private url;
7
7
  private schema;
8
8
  private headers?;
9
9
  constructor(config: ClientConfig<TSchema>);
10
- entity<TEntityName extends string & keyof TSchema & keyof TDefs>(entityName: TEntityName): EntityClient<TDefs, TDefs[TEntityName]>;
10
+ entity<TEntityName extends string & keyof TSchema & keyof TDefs>(entityName: TEntityName): EntityClient<EntityDefsRef<TDefs>, TEntityName>;
11
11
  execute(query: string, variables?: Record<string, unknown>): Promise<Record<string, unknown>>;
12
12
  }
13
13
  export type DrizzleClientConfig<TSchema extends Record<string, unknown>, TConfig extends BuildSchemaConfig> = {
package/entity.d.ts CHANGED
@@ -1,57 +1,59 @@
1
- import type { AnyEntityDefs, EntityDef, EntityDescriptor, InferResult, SchemaDescriptor } from './types';
2
- export type EntityClient<TDefs extends AnyEntityDefs, TEntity extends EntityDef> = {
1
+ import type { AnyEntityDefs, EntityDef, EntityDefsRef, EntityDescriptor, InferResult, SchemaDescriptor } from './types';
2
+ type ResolveEntity<TRef extends EntityDefsRef<AnyEntityDefs>, TEntityName extends string> = TRef['__defs'][TEntityName] & EntityDef;
3
+ export interface EntityClient<TRef extends EntityDefsRef<AnyEntityDefs>, TEntityName extends string> {
3
4
  query<S extends Record<string, unknown>>(params: {
4
5
  select: S;
5
- where?: TEntity extends {
6
+ where?: ResolveEntity<TRef, TEntityName> extends {
6
7
  filters: infer F;
7
8
  } ? F : never;
8
9
  limit?: number;
9
10
  offset?: number;
10
- orderBy?: TEntity extends {
11
+ orderBy?: ResolveEntity<TRef, TEntityName> extends {
11
12
  orderBy: infer O;
12
13
  } ? O : never;
13
- }): Promise<InferResult<TDefs, TEntity, S>[]>;
14
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S>[]>;
14
15
  querySingle<S extends Record<string, unknown>>(params: {
15
16
  select: S;
16
- where?: TEntity extends {
17
+ where?: ResolveEntity<TRef, TEntityName> extends {
17
18
  filters: infer F;
18
19
  } ? F : never;
19
20
  offset?: number;
20
- orderBy?: TEntity extends {
21
+ orderBy?: ResolveEntity<TRef, TEntityName> extends {
21
22
  orderBy: infer O;
22
23
  } ? O : never;
23
- }): Promise<InferResult<TDefs, TEntity, S> | null>;
24
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S> | null>;
24
25
  count(params?: {
25
- where?: TEntity extends {
26
+ where?: ResolveEntity<TRef, TEntityName> extends {
26
27
  filters: infer F;
27
28
  } ? F : never;
28
29
  }): Promise<number>;
29
30
  insert<S extends Record<string, unknown>>(params: {
30
- values: TEntity extends {
31
+ values: ResolveEntity<TRef, TEntityName> extends {
31
32
  insertInput: infer I;
32
33
  } ? I[] : never;
33
34
  returning?: S;
34
- }): Promise<InferResult<TDefs, TEntity, S>[]>;
35
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S>[]>;
35
36
  insertSingle<S extends Record<string, unknown>>(params: {
36
- values: TEntity extends {
37
+ values: ResolveEntity<TRef, TEntityName> extends {
37
38
  insertInput: infer I;
38
39
  } ? I : never;
39
40
  returning?: S;
40
- }): Promise<InferResult<TDefs, TEntity, S> | null>;
41
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S> | null>;
41
42
  update<S extends Record<string, unknown>>(params: {
42
- set: TEntity extends {
43
+ set: ResolveEntity<TRef, TEntityName> extends {
43
44
  updateInput: infer U;
44
45
  } ? U : never;
45
- where?: TEntity extends {
46
+ where?: ResolveEntity<TRef, TEntityName> extends {
46
47
  filters: infer F;
47
48
  } ? F : never;
48
49
  returning?: S;
49
- }): Promise<InferResult<TDefs, TEntity, S>[]>;
50
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S>[]>;
50
51
  delete<S extends Record<string, unknown>>(params: {
51
- where?: TEntity extends {
52
+ where?: ResolveEntity<TRef, TEntityName> extends {
52
53
  filters: infer F;
53
54
  } ? F : never;
54
55
  returning?: S;
55
- }): Promise<InferResult<TDefs, TEntity, S>[]>;
56
- };
57
- export declare function createEntityClient<TDefs extends AnyEntityDefs, TEntity extends EntityDef>(entityName: string, entityDef: EntityDescriptor, schema: SchemaDescriptor, executeGraphQL: (query: string, variables: Record<string, unknown>) => Promise<Record<string, unknown>>): EntityClient<TDefs, TEntity>;
56
+ }): Promise<InferResult<TRef['__defs'], ResolveEntity<TRef, TEntityName>, S>[]>;
57
+ }
58
+ export declare function createEntityClient<TRef extends EntityDefsRef<AnyEntityDefs>, TEntityName extends string>(entityName: string, entityDef: EntityDescriptor, schema: SchemaDescriptor, executeGraphQL: (query: string, variables: Record<string, unknown>) => Promise<Record<string, unknown>>): EntityClient<TRef, TEntityName>;
59
+ export {};
package/index.d.ts CHANGED
@@ -8,4 +8,4 @@ export type { EntityClient } from './entity';
8
8
  export { GraphQLClientError, NetworkError } from './errors';
9
9
  export type { InferEntityDefs } from './infer';
10
10
  export { buildSchemaDescriptor } from './schema-builder';
11
- export type { AnyEntityDefs, ClientConfig, EntityDef, EntityDescriptor, InferResult, SchemaDescriptor, SelectInput, } from './types';
11
+ export type { AnyEntityDefs, ClientConfig, EntityDef, EntityDefsRef, EntityDescriptor, InferResult, SchemaDescriptor, SelectInput, } from './types';
package/index.js CHANGED
@@ -1,24 +1,24 @@
1
- var j=(E)=>E.charAt(0).toUpperCase()+E.slice(1);function G(E,x,$,Y=4){let J=" ".repeat(Y),C=[];for(let[H,R]of Object.entries(E)){if(R===!0){C.push(`${J}${H}`);continue}if(typeof R==="object"&&R!==null){let X=$.relations[H];if(!X)continue;let A=x[X.entity];if(!A)continue;let Z=G(R,x,A,Y+2);C.push(`${J}${H} {`),C.push(Z),C.push(`${J}}`)}}return C.join(`
2
- `)}function L(E){return`${j(E)}Filters`}function S(E){return`${j(E)}OrderBy`}function p(E){return`${j(E)}InsertInput`}function c(E){return`${j(E)}UpdateInput`}function T(E,x,$,Y,J,C,H,R){let X=x.queryListName;if(!X)throw Error(`Entity '${E}' has no list query`);let A=L(E),Z=S(E),_=`${j(X)}Query`,V=[],I=[];if(J)V.push(`$where: ${A}`),I.push("where: $where");if(C)V.push(`$orderBy: ${Z}`),I.push("orderBy: $orderBy");if(H)V.push("$limit: Int"),I.push("limit: $limit");if(R)V.push("$offset: Int"),I.push("offset: $offset");let q=V.length?`(${V.join(", ")})`:"",U=I.length?`(${I.join(", ")})`:"",F=G(Y,$,x);return{query:`query ${_}${q} {
1
+ var j=(E)=>E.charAt(0).toUpperCase()+E.slice(1);function G(E,x,$,Y=4){let H=" ".repeat(Y),C=[];for(let[R,J]of Object.entries(E)){if(J===!0){C.push(`${H}${R}`);continue}if(typeof J==="object"&&J!==null){let X=$.relations[R];if(!X)continue;let A=x[X.entity];if(!A)continue;let Z=G(J,x,A,Y+2);C.push(`${H}${R} {`),C.push(Z),C.push(`${H}}`)}}return C.join(`
2
+ `)}function L(E){return`${j(E)}Filters`}function S(E){return`${j(E)}OrderBy`}function p(E){return`${j(E)}InsertInput`}function c(E){return`${j(E)}UpdateInput`}function T(E,x,$,Y,H,C,R,J){let X=x.queryListName;if(!X)throw Error(`Entity '${E}' has no list query`);let A=L(E),Z=S(E),_=`${j(X)}Query`,V=[],I=[];if(H)V.push(`$where: ${A}`),I.push("where: $where");if(C)V.push(`$orderBy: ${Z}`),I.push("orderBy: $orderBy");if(R)V.push("$limit: Int"),I.push("limit: $limit");if(J)V.push("$offset: Int"),I.push("offset: $offset");let q=V.length?`(${V.join(", ")})`:"",U=I.length?`(${I.join(", ")})`:"",F=G(Y,$,x);return{query:`query ${_}${q} {
3
3
  ${X}${U} {
4
4
  ${F}
5
5
  }
6
- }`,variables:{},operationName:_}}function d(E,x,$,Y,J,C,H){let R=x.queryName;if(!R)throw Error(`Entity '${E}' has no single query`);let X=L(E),A=S(E),Z=`${j(R)}SingleQuery`,_=[],V=[];if(J)_.push(`$where: ${X}`),V.push("where: $where");if(C)_.push(`$orderBy: ${A}`),V.push("orderBy: $orderBy");if(H)_.push("$offset: Int"),V.push("offset: $offset");let I=_.length?`(${_.join(", ")})`:"",q=V.length?`(${V.join(", ")})`:"",U=G(Y,$,x);return{query:`query ${Z}${I} {
7
- ${R}${q} {
6
+ }`,variables:{},operationName:_}}function d(E,x,$,Y,H,C,R){let J=x.queryName;if(!J)throw Error(`Entity '${E}' has no single query`);let X=L(E),A=S(E),Z=`${j(J)}SingleQuery`,_=[],V=[];if(H)_.push(`$where: ${X}`),V.push("where: $where");if(C)_.push(`$orderBy: ${A}`),V.push("orderBy: $orderBy");if(R)_.push("$offset: Int"),V.push("offset: $offset");let I=_.length?`(${_.join(", ")})`:"",q=V.length?`(${V.join(", ")})`:"",U=G(Y,$,x);return{query:`query ${Z}${I} {
7
+ ${J}${q} {
8
8
  ${U}
9
9
  }
10
- }`,variables:{},operationName:Z}}function b(E,x,$){let Y=x.countName;if(!Y)throw Error(`Entity '${E}' has no count query`);let J=L(E),C=`${j(Y)}Query`,H=[],R=[];if($)H.push(`$where: ${J}`),R.push("where: $where");let X=H.length?`(${H.join(", ")})`:"",A=R.length?`(${R.join(", ")})`:"";return{query:`query ${C}${X} {
10
+ }`,variables:{},operationName:Z}}function b(E,x,$){let Y=x.countName;if(!Y)throw Error(`Entity '${E}' has no count query`);let H=L(E),C=`${j(Y)}Query`,R=[],J=[];if($)R.push(`$where: ${H}`),J.push("where: $where");let X=R.length?`(${R.join(", ")})`:"",A=J.length?`(${J.join(", ")})`:"";return{query:`query ${C}${X} {
11
11
  ${Y}${A}
12
- }`,variables:{},operationName:C}}function Q(E,x,$,Y,J){let C=J?x.insertSingleName:x.insertName;if(!C)throw Error(`Entity '${E}' has no ${J?"insertSingle":"insert"} mutation`);let H=p(E),R=`${j(C)}Mutation`,A=`($values: ${J?`${H}!`:`[${H}!]!`})`,Z="(values: $values)",_="";if(Y)_=` {
12
+ }`,variables:{},operationName:C}}function Q(E,x,$,Y,H){let C=H?x.insertSingleName:x.insertName;if(!C)throw Error(`Entity '${E}' has no ${H?"insertSingle":"insert"} mutation`);let R=p(E),J=`${j(C)}Mutation`,A=`($values: ${H?`${R}!`:`[${R}!]!`})`,Z="(values: $values)",_="";if(Y)_=` {
13
13
  ${G(Y,$,x)}
14
- }`;return{query:`mutation ${R}${A} {
14
+ }`;return{query:`mutation ${J}${A} {
15
15
  ${C}${Z}${_}
16
- }`,variables:{},operationName:R}}function v(E,x,$,Y,J){let C=x.updateName;if(!C)throw Error(`Entity '${E}' has no update mutation`);let H=c(E),R=L(E),X=`${j(C)}Mutation`,A=[`$set: ${H}!`],Z=["set: $set"];if(J)A.push(`$where: ${R}`),Z.push("where: $where");let _=`(${A.join(", ")})`,V=`(${Z.join(", ")})`,I="";if(Y)I=` {
16
+ }`,variables:{},operationName:J}}function v(E,x,$,Y,H){let C=x.updateName;if(!C)throw Error(`Entity '${E}' has no update mutation`);let R=c(E),J=L(E),X=`${j(C)}Mutation`,A=[`$set: ${R}!`],Z=["set: $set"];if(H)A.push(`$where: ${J}`),Z.push("where: $where");let _=`(${A.join(", ")})`,V=`(${Z.join(", ")})`,I="";if(Y)I=` {
17
17
  ${G(Y,$,x)}
18
18
  }`;return{query:`mutation ${X}${_} {
19
19
  ${C}${V}${I}
20
- }`,variables:{},operationName:X}}function g(E,x,$,Y,J){let C=x.deleteName;if(!C)throw Error(`Entity '${E}' has no delete mutation`);let H=L(E),R=`${j(C)}Mutation`,X=[],A=[];if(J)X.push(`$where: ${H}`),A.push("where: $where");let Z=X.length?`(${X.join(", ")})`:"",_=A.length?`(${A.join(", ")})`:"",V="";if(Y)V=` {
20
+ }`,variables:{},operationName:X}}function g(E,x,$,Y,H){let C=x.deleteName;if(!C)throw Error(`Entity '${E}' has no delete mutation`);let R=L(E),J=`${j(C)}Mutation`,X=[],A=[];if(H)X.push(`$where: ${R}`),A.push("where: $where");let Z=X.length?`(${X.join(", ")})`:"",_=A.length?`(${A.join(", ")})`:"",V="";if(Y)V=` {
21
21
  ${G(Y,$,x)}
22
- }`;return{query:`mutation ${R}${Z} {
22
+ }`;return{query:`mutation ${J}${Z} {
23
23
  ${C}${_}${V}
24
- }`,variables:{},operationName:R}}function h(E,x,$,Y){return{async query(J){let{select:C,where:H,limit:R,offset:X,orderBy:A}=J,Z=T(E,x,$,C,H!=null,A!=null,R!=null,X!=null),_={};if(H!=null)_.where=H;if(A!=null)_.orderBy=A;if(R!=null)_.limit=R;if(X!=null)_.offset=X;return(await Y(Z.query,_))[x.queryListName]},async querySingle(J){let{select:C,where:H,offset:R,orderBy:X}=J,A=d(E,x,$,C,H!=null,X!=null,R!=null),Z={};if(H!=null)Z.where=H;if(X!=null)Z.orderBy=X;if(R!=null)Z.offset=R;return(await Y(A.query,Z))[x.queryName]??null},async count(J){let C=J?.where,H=b(E,x,C!=null),R={};if(C!=null)R.where=C;return(await Y(H.query,R))[x.countName]},async insert(J){let{values:C,returning:H}=J,R=Q(E,x,$,H,!1),X={values:C};return(await Y(R.query,X))[x.insertName]},async insertSingle(J){let{values:C,returning:H}=J,R=Q(E,x,$,H,!0),X={values:C};return(await Y(R.query,X))[x.insertSingleName]??null},async update(J){let{set:C,where:H,returning:R}=J,X=v(E,x,$,R,H!=null),A={set:C};if(H!=null)A.where=H;return(await Y(X.query,A))[x.updateName]},async delete(J){let{where:C,returning:H}=J,R=g(E,x,$,H,C!=null),X={};if(C!=null)X.where=C;return(await Y(R.query,X))[x.deleteName]}}}class K extends Error{errors;status;constructor(E,x=200){let $=E.map((Y)=>Y.message).join("; ");super($);this.name="GraphQLClientError",this.errors=E,this.status=x}}class W extends Error{status;constructor(E,x){super(E);this.name="NetworkError",this.status=x}}import{getTableColumns as f,getTableName as D,is as w,Many as N,One as u,Relations as m,Table as l}from"drizzle-orm";var z=(E)=>E.charAt(0).toUpperCase()+E.slice(1);function k(E,x={}){let $=new Set(x.tables?.exclude??[]),Y=x.suffixes?.list??"s",J=new Map,C=new Map;for(let[A,Z]of Object.entries(E))if(w(Z,l)){if($.has(A))continue;let _=D(Z),V=Object.keys(f(Z));J.set(A,{table:Z,dbName:_,columns:V}),C.set(_,A)}let H=new Map;for(let A of Object.values(E)){if(!w(A,m))continue;let Z=D(A.table),_=C.get(Z);if(!_||!J.has(_))continue;let V={one:(U,F)=>{return new u(A.table,U,F,!1)},many:(U,F)=>{return new N(A.table,U,F)}},I=A.config(V),q={};for(let[U,F]of Object.entries(I)){let O=F,P=O.referencedTableName;if(!P)continue;let B=C.get(P);if(!B)continue;let o=w(O,u)?"one":"many";q[U]={entity:B,type:o}}H.set(_,q)}let R=x.pruneRelations??{};for(let[A,Z]of H)for(let _ of Object.keys(Z)){let V=`${A}.${_}`;if(R[V]===!1)delete Z[_]}let X={};for(let[A,{columns:Z}]of J){let _=H.get(A)??{};X[A]={queryName:A,queryListName:`${A}${Y}`,countName:`${A}Count`,insertName:`insertInto${z(A)}`,insertSingleName:`insertInto${z(A)}Single`,updateName:`update${z(A)}`,deleteName:`deleteFrom${z(A)}`,fields:Z,relations:_}}return X}class M{url;schema;headers;constructor(E){this.url=E.url,this.schema=E.schema,this.headers=E.headers}entity(E){let x=this.schema[E];if(!x)throw Error(`Entity '${E}' not found in schema`);return h(E,x,this.schema,($,Y)=>this.execute($,Y))}async execute(E,x={}){let $=typeof this.url==="function"?this.url():this.url,Y={"Content-Type":"application/json",...typeof this.headers==="function"?await this.headers():this.headers??{}},J;try{J=await fetch($,{method:"POST",headers:Y,body:JSON.stringify({query:E,variables:x})})}catch(H){throw new W(H instanceof Error?H.message:"Network request failed",0)}if(!J.ok)throw new W(`HTTP ${J.status}: ${J.statusText}`,J.status);let C=await J.json();if(C.errors?.length)throw new K(C.errors,J.status);if(!C.data)throw new K([{message:"No data in response"}],J.status);return C.data}}function y(E){let x=k(E.schema,E.config);return new M({url:E.url,schema:x,headers:E.headers})}function HE(E){return new M(E)}export{y as createDrizzleClient,HE as createClient,k as buildSchemaDescriptor,W as NetworkError,K as GraphQLClientError,M as GraphQLClient};
24
+ }`,variables:{},operationName:J}}function D(E,x,$,Y){return{async query(H){let{select:C,where:R,limit:J,offset:X,orderBy:A}=H,Z=T(E,x,$,C,R!=null,A!=null,J!=null,X!=null),_={};if(R!=null)_.where=R;if(A!=null)_.orderBy=A;if(J!=null)_.limit=J;if(X!=null)_.offset=X;return(await Y(Z.query,_))[x.queryListName]},async querySingle(H){let{select:C,where:R,offset:J,orderBy:X}=H,A=d(E,x,$,C,R!=null,X!=null,J!=null),Z={};if(R!=null)Z.where=R;if(X!=null)Z.orderBy=X;if(J!=null)Z.offset=J;return(await Y(A.query,Z))[x.queryName]??null},async count(H){let C=H?.where,R=b(E,x,C!=null),J={};if(C!=null)J.where=C;return(await Y(R.query,J))[x.countName]},async insert(H){let{values:C,returning:R}=H,J=Q(E,x,$,R,!1),X={values:C};return(await Y(J.query,X))[x.insertName]},async insertSingle(H){let{values:C,returning:R}=H,J=Q(E,x,$,R,!0),X={values:C};return(await Y(J.query,X))[x.insertSingleName]??null},async update(H){let{set:C,where:R,returning:J}=H,X=v(E,x,$,J,R!=null),A={set:C};if(R!=null)A.where=R;return(await Y(X.query,A))[x.updateName]},async delete(H){let{where:C,returning:R}=H,J=g(E,x,$,R,C!=null),X={};if(C!=null)X.where=C;return(await Y(J.query,X))[x.deleteName]}}}class K extends Error{errors;status;constructor(E,x=200){let $=E.map((Y)=>Y.message).join("; ");super($);this.name="GraphQLClientError",this.errors=E,this.status=x}}class W extends Error{status;constructor(E,x){super(E);this.name="NetworkError",this.status=x}}import{getTableColumns as f,getTableName as h,is as w,Many as N,One as u,Relations as m,Table as l}from"drizzle-orm";var z=(E)=>E.charAt(0).toUpperCase()+E.slice(1);function k(E,x={}){let $=new Set(x.tables?.exclude??[]),Y=x.suffixes?.list??"s",H=new Map,C=new Map;for(let[A,Z]of Object.entries(E))if(w(Z,l)){if($.has(A))continue;let _=h(Z),V=Object.keys(f(Z));H.set(A,{table:Z,dbName:_,columns:V}),C.set(_,A)}let R=new Map;for(let A of Object.values(E)){if(!w(A,m))continue;let Z=h(A.table),_=C.get(Z);if(!_||!H.has(_))continue;let V={one:(U,F)=>{return new u(A.table,U,F,!1)},many:(U,F)=>{return new N(A.table,U,F)}},I=A.config(V),q={};for(let[U,F]of Object.entries(I)){let O=F,P=O.referencedTableName;if(!P)continue;let B=C.get(P);if(!B)continue;let o=w(O,u)?"one":"many";q[U]={entity:B,type:o}}R.set(_,q)}let J=x.pruneRelations??{};for(let[A,Z]of R)for(let _ of Object.keys(Z)){let V=`${A}.${_}`;if(J[V]===!1)delete Z[_]}let X={};for(let[A,{columns:Z}]of H){let _=R.get(A)??{};X[A]={queryName:A,queryListName:`${A}${Y}`,countName:`${A}Count`,insertName:`insertInto${z(A)}`,insertSingleName:`insertInto${z(A)}Single`,updateName:`update${z(A)}`,deleteName:`deleteFrom${z(A)}`,fields:Z,relations:_}}return X}class M{url;schema;headers;constructor(E){this.url=E.url,this.schema=E.schema,this.headers=E.headers}entity(E){let x=this.schema[E];if(!x)throw Error(`Entity '${E}' not found in schema`);return D(E,x,this.schema,($,Y)=>this.execute($,Y))}async execute(E,x={}){let $=typeof this.url==="function"?this.url():this.url,Y={"Content-Type":"application/json",...typeof this.headers==="function"?await this.headers():this.headers??{}},H;try{H=await fetch($,{method:"POST",headers:Y,body:JSON.stringify({query:E,variables:x})})}catch(R){throw new W(R instanceof Error?R.message:"Network request failed",0)}if(!H.ok)throw new W(`HTTP ${H.status}: ${H.statusText}`,H.status);let C=await H.json();if(C.errors?.length)throw new K(C.errors,H.status);if(!C.data)throw new K([{message:"No data in response"}],H.status);return C.data}}function y(E){let x=k(E.schema,E.config);return new M({url:E.url,schema:x,headers:E.headers})}function RE(E){return new M(E)}export{y as createDrizzleClient,RE as createClient,k as buildSchemaDescriptor,W as NetworkError,K as GraphQLClientError,M as GraphQLClient};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drizzle-graphql-suite/client",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Type-safe GraphQL client with entity-based API and full Drizzle type inference",
5
5
  "license": "MIT",
6
6
  "author": "https://github.com/dmythro",
package/types.d.ts CHANGED
@@ -12,6 +12,10 @@ export type EntityDef = {
12
12
  orderBy?: Record<string, unknown>;
13
13
  };
14
14
  export type AnyEntityDefs = Record<string, EntityDef>;
15
+ /** Opaque wrapper that prevents TS from expanding entity defs during serialization */
16
+ export interface EntityDefsRef<TDefs extends AnyEntityDefs> {
17
+ readonly __defs: TDefs;
18
+ }
15
19
  export type EntityDescriptor = {
16
20
  queryName: string;
17
21
  queryListName: string;