@vladimirdev635/gql-client 0.0.46 → 0.0.48

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/execute.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { ClientConfig, Operation, OperationVariables, RequestContext, SubOpAsyncIterable, SubscriptionOperation, SyncOperation } from './types/index.js';
2
- import { OperationResult, OpResultBasedOnOp } from './types/utils.js';
1
+ import { ClientConfig, Operation, OperationResult, OperationVariables, RequestContext, SubOpAsyncIterable, SubscriptionOperation, SyncOperation } from './types/index.js';
2
+ import { OpResultBasedOnOp } from './types/utils.js';
3
3
  export interface ExecuteResult<TResult> {
4
4
  result: TResult;
5
5
  response: Response;
6
6
  }
7
- export declare function execute<TClientContext, TRequestContext extends RequestContext, T extends Operation>(config: ClientConfig<TClientContext, TRequestContext>, operation: T, variables: OperationVariables<T>, requestContext: TRequestContext): Promise<ExecuteResult<OpResultBasedOnOp<T>>>;
7
+ export declare function execute<TClientContext, TRequestContext extends RequestContext, T extends Operation<unknown, unknown>>(config: ClientConfig<TClientContext, TRequestContext>, operation: T, variables: OperationVariables<T>, requestContext: TRequestContext): Promise<ExecuteResult<OpResultBasedOnOp<T>>>;
8
8
  export type Executor<TRequestContext extends RequestContext> = {
9
- <TSyncOp extends SyncOperation>(operation: TSyncOp, variables: OperationVariables<TSyncOp>, context: TRequestContext): Promise<ExecuteResult<OperationResult<TSyncOp>>>;
10
- <TOperation extends SubscriptionOperation>(operation: TOperation, variables: OperationVariables<TOperation>, context: TRequestContext): Promise<ExecuteResult<SubOpAsyncIterable<OperationResult<TOperation>>>>;
9
+ <TSyncOp extends SyncOperation<unknown, unknown>>(operation: TSyncOp, variables: OperationVariables<TSyncOp>, context: TRequestContext): Promise<ExecuteResult<OperationResult<TSyncOp>>>;
10
+ <TOperation extends SubscriptionOperation<unknown, unknown>>(operation: TOperation, variables: OperationVariables<TOperation>, context: TRequestContext): Promise<ExecuteResult<SubOpAsyncIterable<OperationResult<TOperation>>>>;
11
11
  };
12
12
  export declare function bindConfigToExecute<TClientContext, TRequestContext extends RequestContext>(config: ClientConfig<TClientContext, TRequestContext>): Executor<TRequestContext>;
package/execute.js CHANGED
@@ -53,5 +53,7 @@ export async function execute(config, operation, variables, requestContext) {
53
53
  return { result, response };
54
54
  }
55
55
  export function bindConfigToExecute(config) {
56
- return (operation, variables, requestContext) => execute(config, operation, variables, requestContext);
56
+ return (operation, variables, requestContext) => execute(config, operation, variables, requestContext
57
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
+ );
57
59
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vladimirdev635/gql-client",
3
- "version": "0.0.46",
3
+ "version": "0.0.48",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
package/parser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ClientParser, Operation, RequestContext, ClientParserParseBodyOptions } from './types/index.js';
2
2
  export interface CreateParserOptions<TClientContext, TRequestContext extends RequestContext> {
3
- onErrors: <T extends Operation>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, T>, errors: any[]) => Promise<void> | void;
3
+ onErrors: <T extends Operation<unknown, unknown>>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, T>, errors: any[]) => Promise<void> | void;
4
4
  }
5
5
  export declare function createParser<TClientContext, TRequestContext extends RequestContext>(parserOptions?: CreateParserOptions<TClientContext, TRequestContext>): ClientParser<TClientContext, TRequestContext>;
package/parser.js CHANGED
@@ -6,7 +6,9 @@ const defaultParserOptions = {
6
6
  };
7
7
  export function createParser(parserOptions = defaultParserOptions) {
8
8
  return {
9
- parseBody: async (options) => {
9
+ parseBody: async (options
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ ) => {
10
12
  if (options.operation.type === 'SUBSCRIPTION') {
11
13
  if (options.response.status !== 200) {
12
14
  throw new Error(await options.response.text());
package/types/base.d.ts CHANGED
@@ -1,19 +1,21 @@
1
1
  import { z } from 'zod/v4';
2
- export interface SyncOperation {
3
- type: 'QUERY' | 'MUTATION';
2
+ export type SchemaFor<T> = z.ZodType<T>;
3
+ interface BaseOperation<V, R> {
4
4
  name: string;
5
5
  document: string;
6
- variablesSchema: z.ZodType;
7
- resultSchema: z.ZodType;
6
+ variablesSchema: SchemaFor<V>;
7
+ resultSchema: SchemaFor<R>;
8
+ }
9
+ export interface SyncOperation<V, R> extends BaseOperation<V, R> {
10
+ type: 'QUERY' | 'MUTATION';
8
11
  }
9
- export interface SubscriptionOperation {
12
+ export interface SubscriptionOperation<V, R> extends BaseOperation<V, R> {
10
13
  type: 'SUBSCRIPTION';
11
- name: string;
12
- document: string;
13
- variablesSchema: z.ZodType;
14
- resultSchema: z.ZodType;
15
14
  }
16
- export type Operation = SyncOperation | SubscriptionOperation;
15
+ export type Operation<V, R> = SyncOperation<V, R> | SubscriptionOperation<V, R>;
17
16
  export interface RequestContext {
18
17
  fetchOptions?: RequestInit;
19
18
  }
19
+ export type OperationVariables<T extends Operation<unknown, unknown>> = T extends Operation<infer V, unknown> ? V : never;
20
+ export type OperationResult<T extends Operation<unknown, unknown>> = T extends Operation<unknown, infer R> ? R : never;
21
+ export {};
package/types/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type { Operation, SyncOperation, SubscriptionOperation, RequestContext, } from './base.js';
1
+ export type { Operation, SyncOperation, SubscriptionOperation, RequestContext, OperationVariables, OperationResult } from './base.js';
2
2
  export type { BeforeSerializationMiddleware, AfterSerializationMiddleware, BeforeParsingMiddleware, AfterParsingMiddleware, ClientMiddlewaresConfig } from './middlewares.js';
3
3
  export type { ClientParser, ClientParserParseBodyOptions, SubOpAsyncIterable } from './parser.js';
4
4
  export type { ClientSerializer } from './serializer.js';
5
5
  export type { ClientConfig } from './config.js';
6
- export type { OperationResult, OperationVariables, OpResultBasedOnOp } from './utils.js';
6
+ export type { OpResultBasedOnOp } from './utils.js';
@@ -1,20 +1,20 @@
1
- import { Operation, SubscriptionOperation, SyncOperation, RequestContext } from './base.js';
1
+ import { Operation, SubscriptionOperation, SyncOperation, RequestContext, OperationVariables, OperationResult } from './base.js';
2
2
  import { SubOpAsyncIterable } from './parser.js';
3
- import { OperationResult, OperationVariables, OpResultBasedOnOp, PromiseOrValue } from './utils.js';
4
- export type BeforeSerializationMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation>(options: {
3
+ import { OpResultBasedOnOp, PromiseOrValue } from './utils.js';
4
+ export type BeforeSerializationMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation<unknown, unknown>>(options: {
5
5
  clientContext: TClientContext;
6
6
  requestContext: TRequestContext;
7
7
  operation: T;
8
8
  variables: OperationVariables<T>;
9
9
  }) => PromiseOrValue<[T, OperationVariables<T>]>;
10
- export type AfterSerializationMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation>(options: {
10
+ export type AfterSerializationMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation<unknown, unknown>>(options: {
11
11
  clientContext: TClientContext;
12
12
  requestContext: TRequestContext;
13
13
  operation: T;
14
14
  variables: OperationVariables<T>;
15
15
  init: RequestInit;
16
16
  }) => PromiseOrValue<RequestInit>;
17
- export type BeforeParsingMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation>(options: {
17
+ export type BeforeParsingMiddleware<TClientContext, TRequestContext extends RequestContext> = <T extends Operation<unknown, unknown>>(options: {
18
18
  clientContext: TClientContext;
19
19
  requestContext: TRequestContext;
20
20
  operation: T;
@@ -22,7 +22,7 @@ export type BeforeParsingMiddleware<TClientContext, TRequestContext extends Requ
22
22
  init: RequestInit;
23
23
  response: Response;
24
24
  }) => PromiseOrValue<Response>;
25
- export interface AfterParsingMiddlewareOptions<TClientContext, TRequestContext extends RequestContext, T extends Operation> {
25
+ export interface AfterParsingMiddlewareOptions<TClientContext, TRequestContext extends RequestContext, T extends Operation<unknown, unknown>> {
26
26
  clientContext: TClientContext;
27
27
  requestContext: TRequestContext;
28
28
  operation: T;
@@ -32,9 +32,9 @@ export interface AfterParsingMiddlewareOptions<TClientContext, TRequestContext e
32
32
  result: OpResultBasedOnOp<T>;
33
33
  }
34
34
  export type AfterParsingMiddleware<TClientContext, TRequestContext extends RequestContext> = {
35
- <TSyncOp extends SyncOperation>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TSyncOp>): PromiseOrValue<OperationResult<TSyncOp>>;
36
- <TSubOp extends SubscriptionOperation>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TSubOp>): PromiseOrValue<SubOpAsyncIterable<OperationResult<TSubOp>>>;
37
- <TOp extends Operation>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TOp>): PromiseOrValue<OperationResult<TOp>> | PromiseOrValue<SubOpAsyncIterable<OperationResult<TOp>>>;
35
+ <TSyncOp extends SyncOperation<unknown, unknown>>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TSyncOp>): PromiseOrValue<OperationResult<TSyncOp>>;
36
+ <TSubOp extends SubscriptionOperation<unknown, unknown>>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TSubOp>): PromiseOrValue<SubOpAsyncIterable<OperationResult<TSubOp>>>;
37
+ <TOp extends Operation<unknown, unknown>>(options: AfterParsingMiddlewareOptions<TClientContext, TRequestContext, TOp>): PromiseOrValue<OperationResult<TOp>> | PromiseOrValue<SubOpAsyncIterable<OperationResult<TOp>>>;
38
38
  };
39
39
  export interface ClientMiddlewaresConfig<TClientContext, TRequestContext extends RequestContext> {
40
40
  beforeSerialization: BeforeSerializationMiddleware<TClientContext, TRequestContext>[];
package/types/parser.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { SubscriptionOperation, SyncOperation, RequestContext, Operation } from './base.js';
2
- import { OperationResult, PromiseOrValue } from './utils.js';
3
- export interface ClientParserParseBodyOptions<TClientContext, TRequestContext extends RequestContext, TOperation> {
1
+ import type { SubscriptionOperation, SyncOperation, RequestContext, Operation, OperationResult } from './base.js';
2
+ import { PromiseOrValue } from './utils.js';
3
+ export interface ClientParserParseBodyOptions<TClientContext, TRequestContext extends RequestContext, TOperation extends Operation<unknown, unknown>> {
4
4
  clientContext: TClientContext;
5
5
  requestContext: TRequestContext;
6
6
  operation: TOperation;
@@ -11,9 +11,9 @@ export type SubOpAsyncIterable<TResult> = {
11
11
  close: () => void;
12
12
  };
13
13
  export type ParseBodyFuncType<TClientContext, TRequestContext extends RequestContext> = {
14
- <TSyncOp extends SyncOperation>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TSyncOp>): PromiseOrValue<OperationResult<TSyncOp>>;
15
- <TSubOp extends SubscriptionOperation>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TSubOp>): PromiseOrValue<SubOpAsyncIterable<OperationResult<TSubOp>>>;
16
- <TOp extends Operation>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TOp>): PromiseOrValue<OperationResult<TOp>> | PromiseOrValue<SubOpAsyncIterable<OperationResult<TOp>>>;
14
+ <TSyncOp extends SyncOperation<unknown, unknown>>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TSyncOp>): PromiseOrValue<OperationResult<TSyncOp>>;
15
+ <TSubOp extends SubscriptionOperation<unknown, unknown>>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TSubOp>): PromiseOrValue<SubOpAsyncIterable<OperationResult<TSubOp>>>;
16
+ <TOp extends Operation<unknown, unknown>>(options: ClientParserParseBodyOptions<TClientContext, TRequestContext, TOp>): PromiseOrValue<OperationResult<TOp>> | PromiseOrValue<SubOpAsyncIterable<OperationResult<TOp>>>;
17
17
  };
18
18
  export interface ClientParser<TClientContext, TRequestContext extends RequestContext> {
19
19
  parseBody: ParseBodyFuncType<TClientContext, TRequestContext>;
@@ -1,7 +1,7 @@
1
- import { Operation, RequestContext } from './base.js';
2
- import { OperationVariables, PromiseOrValue } from './utils.js';
1
+ import { Operation, OperationVariables, RequestContext } from './base.js';
2
+ import { PromiseOrValue } from './utils.js';
3
3
  export interface ClientSerializer<TClientContext, TRequestContext extends RequestContext> {
4
- serializeRequest: <T extends Operation>(options: {
4
+ serializeRequest: <T extends Operation<unknown, unknown>>(options: {
5
5
  clientContext: TClientContext;
6
6
  requestContext: TRequestContext;
7
7
  operation: T;
package/types/utils.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { z } from 'zod/v4';
2
1
  import { Operation, SubscriptionOperation, SyncOperation } from './base.js';
3
2
  export type PromiseOrValue<T> = Promise<T> | T;
4
- export type OperationResult<T extends Operation> = z.infer<T['resultSchema']>;
5
- export type OperationVariables<T extends Operation> = z.infer<T['variablesSchema']>;
6
- export type OpResultBasedOnOp<T extends Operation> = T extends SyncOperation ? OperationResult<T> : T extends SubscriptionOperation ? AsyncIterable<OperationResult<T>> : never;
3
+ export type OpResultBasedOnOp<T extends Operation<unknown, unknown>> = T extends SyncOperation<unknown, infer R> ? R : T extends SubscriptionOperation<unknown, infer R> ? AsyncIterable<R> : never;