import { IntrospectionQuery } from "graphql"; import { Client, Exchange } from "@urql/core"; //#region lib/client/request.d.ts declare const argsKey = "__args"; //#endregion //#region lib/client/utilTypes.d.ts type UnArray = T extends Array ? U : T; type UnFunc = T extends (() => infer A) ? A : T; type ExtractGQLTypeFromField = NonNullable>>; type DeriveArrayType = From extends Array ? To[] : To; type DeriveNullability = From extends null ? To | null : To; type RequireAtLeastOneFieldSet = { [K in keyof T]: Required> & Partial> }[keyof T]; //#endregion //#region lib/client/types.d.ts type QueryableObjectFromGeneratedTypes = { [Key in keyof Q]: Q[Key] extends ((p: infer QueryArgs) => infer QueryResponse) ? NonNullable extends object ? ? // in that case we want to extend the object with an args key property ObjectFieldSelection>> & { [argsKey]: QueryArgs; } : ObjectFieldSelection>>)>(s: Selected) => DeriveNullability, Selected>>, ForceReactivity>> : (p: { [argsKey]: QueryArgs; }) => Response : () => Response }; /** * The input to select fields for an object */ type ObjectFieldSelection = RequireAtLeastOneFieldSet<{ [Key in keyof O]: NonNullable> extends ((p: infer P) => infer A) ? P extends Record ? NonNullable> extends object ? // object return with required args — need both field selection and args ObjectFieldSelection>> & { [argsKey]: P; } : { [argsKey]: P; } : NonNullable> extends object ? ObjectFieldSelection>> : boolean : boolean }>; /** * Apply a selection to an object type */ type ApplySelection = { [Key in keyof Selection & keyof Object]: Object[Key] extends ((p: infer _RequestArgs) => infer FieldResponse) ? DeriveNullability, ApplySelection, Selection[Key]>>> : Object[Key] }; type Subscribeable = { subscribe: (subscription: (value: Data) => void) => () => void; }; type Response = ForceReactivity extends true ? Promise> & Subscribeable : Data extends object ? Promise & Data> & Subscribeable : Promise> & Subscribeable; //#endregion //#region lib/client/liveQuery.d.ts declare function makeLiveQuery, ForceReactivity extends boolean = false>({ urqlClient, availableSubscriptions, forceReactivity, schema, autoIncludeIdField }: { urqlClient: Client; schema: IntrospectionQuery; availableSubscriptions: Set; forceReactivity?: ForceReactivity; autoIncludeIdField?: string; }): QueryableObjectFromGeneratedTypes; //#endregion //#region lib/client/mutation.d.ts declare function makeMutation>({ urqlClient, schema, autoIncludeIdField }: { urqlClient: Client; schema: IntrospectionQuery; autoIncludeIdField?: string; }): QueryableObjectFromGeneratedTypes; //#endregion //#region lib/client/nativeDateExchange.d.ts declare const nativeDateExchange: Exchange; //#endregion //#region lib/client/query.d.ts declare function makeQuery, ForceReactivity extends boolean = false>({ urqlClient, forceReactivity, schema, autoIncludeIdField }: { urqlClient: Client; forceReactivity?: ForceReactivity; schema: IntrospectionQuery; autoIncludeIdField?: string; }): QueryableObjectFromGeneratedTypes; //#endregion //#region lib/client/subscription.d.ts declare function makeSubscription>({ urqlClient, schema, autoIncludeIdField }: { urqlClient: Client; schema: IntrospectionQuery; autoIncludeIdField?: string; }): SubscriptionObject; type SubscriptionObject = { [Key in keyof Q]: QueryableObjectField }; type QueryableObjectField = T extends ((p: infer QueryArgs) => infer QueryResponse) ? ? ObjectFieldSelection>> & { [argsKey]: QueryArgs; } : ObjectFieldSelection>>)>(s: Selected) => QueryResponse extends null ? Subscribeable extends Array ? ApplySelection>, Selected>[] : ApplySelection>, Selected>> | null : Subscribeable ? ApplySelection, Selected>[] : ApplySelection, Selected>> : Subscribeable; //#endregion export { makeLiveQuery, makeMutation, makeQuery, makeSubscription, nativeDateExchange }; //# sourceMappingURL=client.d.mts.map