mobx-tanstack-query-api 0.0.57 → 0.0.59

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-tanstack-query-api",
3
- "version": "0.0.57",
3
+ "version": "0.0.59",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",
@@ -29,10 +29,12 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^20.17.11",
32
+ "commitfmt": "^1.0.0",
32
33
  "eslint": "^8.57.1",
33
34
  "js2me-eslint-config": "^1.0.7",
34
- "js2me-exports-post-build-script": "^2.0.17",
35
+ "js2me-exports-post-build-script": "^3.0.2",
35
36
  "jsdom": "^26.0.0",
37
+ "lefthook": "^1.11.13",
36
38
  "nodemon": "^3.1.9",
37
39
  "rimraf": "^6.0.1",
38
40
  "typescript": "^5.8.3",
@@ -143,6 +145,7 @@
143
145
  "main": "./index.js",
144
146
  "typings": "./index.d.ts",
145
147
  "scripts": {
148
+ "postinstall": "pnpm dev:install-hooks",
146
149
  "clean": "rimraf dist",
147
150
  "lint:check": "eslint . --fix",
148
151
  "ts:check": "tsc --noEmit",
@@ -158,6 +161,7 @@
158
161
  "test:watch": "vitest watch",
159
162
  "test:coverage": "vitest run --coverage",
160
163
  "dev": "pnpm build && nodemon --delay 0.5 --watch src --ext ts,tsx --exec \"pnpm build && pnpm playground\"",
161
- "playground": "node ./playground/index.mjs"
164
+ "playground": "node ./playground/index.mjs",
165
+ "dev:install-hooks": "if [ -z \"$CI\" ]; then lefthook install; fi"
162
166
  }
163
167
  }
@@ -1,22 +1,10 @@
1
- import { Mutation, MutationConfig, MutationInvalidateQueriesOptions } from 'mobx-tanstack-query';
2
- import { AllPropertiesOptional, AnyObject } from 'yummies/utils/types';
1
+ import { Mutation } from 'mobx-tanstack-query';
2
+ import { AnyObject } from 'yummies/utils/types';
3
+ import { EndpointMutationParams, EndpointMutationOptions } from './endpoint-mutation.types.js';
3
4
  import { EndpointQueryClient } from './endpoint-query-client.js';
4
5
  import { AnyEndpoint } from './endpoint.types.js';
5
- import { AnyHttpResponse } from './http-client.js';
6
- export interface EndpointMutationInvalidateQueriesOptions extends MutationInvalidateQueriesOptions {
7
- invalidateTags?: string[];
8
- }
9
- export type EndpointMutationInput<TBaseInput extends AnyObject, TMutationMeta extends AnyObject | void = void> = TBaseInput & (TMutationMeta extends void ? {} : AllPropertiesOptional<TMutationMeta> extends true ? {
10
- meta?: TMutationMeta;
11
- } : {
12
- meta: TMutationMeta;
13
- });
14
- export type EndpointMutationOptions<TOutput, TInput extends AnyObject, TResponse extends AnyHttpResponse, TMutationMeta extends AnyObject | void = void> = {
15
- transform?: (response: TResponse) => TOutput | Promise<TOutput>;
16
- invalidateQueries?: EndpointMutationInvalidateQueriesOptions | ((data: NoInfer<TOutput>, payload: EndpointMutationInput<NoInfer<TInput>, NoInfer<TMutationMeta>>) => EndpointMutationInvalidateQueriesOptions | null | undefined);
17
- } & Omit<MutationConfig<NoInfer<TOutput>, EndpointMutationInput<NoInfer<TInput>, NoInfer<TMutationMeta>>, NoInfer<TResponse>['error']>, 'queryClient' | 'mutationFn' | 'invalidateQueries'>;
18
- export declare class EndpointMutation<TOutput, TInput extends AnyObject, TResponse extends AnyHttpResponse, TMutationMeta extends AnyObject | void = void> extends Mutation<TOutput, EndpointMutationInput<TInput, TMutationMeta>, TResponse['error']> {
6
+ export declare class EndpointMutation<TEndpoint extends AnyEndpoint, TData = unknown, TParams extends AnyObject = AnyObject, TMutationMeta extends AnyObject | void = void, TContext = unknown> extends Mutation<TData, EndpointMutationParams<TParams, TMutationMeta>, TEndpoint['__response']['error'], TContext> {
19
7
  private endpoint;
20
- constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, { transform: transformResponse, invalidateQueries, ...mutationOptions }: EndpointMutationOptions<TOutput, TInput, TResponse, TMutationMeta>);
8
+ constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, { transform: transformResponse, invalidateQueries, ...mutationOptions }: EndpointMutationOptions<TEndpoint, TData, TParams, TMutationMeta, TContext>);
21
9
  }
22
10
  //# sourceMappingURL=endpoint-mutation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-mutation.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,wCACf,SAAQ,gCAAgC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,SAAS,EAC5B,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAC3C,UAAU,GACZ,CAAC,aAAa,SAAS,IAAI,GAEvB,EAAE,GACF,qBAAqB,CAAC,aAAa,CAAC,SAAS,IAAI,GAC/C;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAEjC,MAAM,MAAM,uBAAuB,CACjC,OAAO,EACP,MAAM,SAAS,SAAS,EACxB,SAAS,SAAS,eAAe,EACjC,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAC3C;IACF,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,iBAAiB,CAAC,EACd,wCAAwC,GACxC,CAAC,CACC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EACtB,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,KACpE,wCAAwC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACvE,GAAG,IAAI,CACN,cAAc,CACZ,OAAO,CAAC,OAAO,CAAC,EAChB,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAC9D,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAC5B,EACD,aAAa,GAAG,YAAY,GAAG,mBAAmB,CACnD,CAAC;AAEF,qBAAa,gBAAgB,CAC3B,OAAO,EACP,MAAM,SAAS,SAAS,EACxB,SAAS,SAAS,eAAe,EACjC,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,CAC7C,SAAQ,QAAQ,CAChB,OAAO,EACP,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,SAAS,CAAC,OAAO,CAAC,CACnB;IAEG,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,EACE,SAAS,EAAE,iBAAiB,EAC5B,iBAAiB,EACjB,GAAG,eAAe,EACnB,EAAE,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;CAgDxE"}
1
+ {"version":3,"file":"endpoint-mutation.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,sBAAsB,EAEtB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,gBAAgB,CAC3B,SAAS,SAAS,WAAW,EAC7B,KAAK,GAAG,OAAO,EACf,OAAO,SAAS,SAAS,GAAG,SAAS,EACrC,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,EAC7C,QAAQ,GAAG,OAAO,CAClB,SAAQ,QAAQ,CAChB,KAAK,EACL,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,EAC9C,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAChC,QAAQ,CACT;IAEG,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,EACE,SAAS,EAAE,iBAAiB,EAC5B,iBAAiB,EACjB,GAAG,eAAe,EACnB,EAAE,uBAAuB,CACxB,SAAS,EACT,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,CACT;CAyCJ"}
@@ -1,4 +1,4 @@
1
- import { Mutation, } from 'mobx-tanstack-query';
1
+ import { Mutation } from 'mobx-tanstack-query';
2
2
  export class EndpointMutation extends Mutation {
3
3
  endpoint;
4
4
  constructor(endpoint, queryClient, { transform: transformResponse, invalidateQueries, ...mutationOptions }) {
@@ -31,11 +31,7 @@ export class EndpointMutation extends Mutation {
31
31
  },
32
32
  mutationFn: async (input) => {
33
33
  const response = await endpoint.request(input);
34
- let output = response.data;
35
- if (transformResponse) {
36
- output = await transformResponse(response);
37
- }
38
- return output;
34
+ return (await transformResponse?.(response)) ?? response.data;
39
35
  },
40
36
  });
41
37
  this.endpoint = endpoint;
@@ -0,0 +1,19 @@
1
+ import { MutationConfig, MutationInvalidateQueriesOptions } from 'mobx-tanstack-query';
2
+ import { AllPropertiesOptional, AnyObject } from 'yummies/utils/types';
3
+ import { AnyEndpoint } from './endpoint.types.js';
4
+ export interface EndpointMutationInvalidateQueriesOptions extends MutationInvalidateQueriesOptions {
5
+ invalidateTags?: string[];
6
+ }
7
+ export type EndpointMutationParams<TParams extends AnyObject, TMutationMeta extends AnyObject | void = void> = TParams & (TMutationMeta extends void ? {} : AllPropertiesOptional<TMutationMeta> extends true ? {
8
+ meta?: TMutationMeta;
9
+ } : {
10
+ meta: TMutationMeta;
11
+ });
12
+ export type EndpointMutationOptions<TEndpoint extends AnyEndpoint, TData = unknown, TParams extends AnyObject = AnyObject, TMutationMeta extends AnyObject | void = void, TContext = unknown> = {
13
+ /**
14
+ * Transform response to TData
15
+ */
16
+ transform?: (response: TEndpoint['__response']) => TData | Promise<TData>;
17
+ invalidateQueries?: EndpointMutationInvalidateQueriesOptions | ((data: NoInfer<TData>, payload: EndpointMutationParams<NoInfer<TParams>, NoInfer<TMutationMeta>>) => EndpointMutationInvalidateQueriesOptions | null | undefined);
18
+ } & Omit<MutationConfig<NoInfer<TData>, EndpointMutationParams<NoInfer<TParams>, NoInfer<TMutationMeta>>, TEndpoint['__response']['error'], TContext>, 'queryClient' | 'mutationFn' | 'invalidateQueries'>;
19
+ //# sourceMappingURL=endpoint-mutation.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-mutation.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-mutation.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,wCACf,SAAQ,gCAAgC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,sBAAsB,CAChC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAC3C,OAAO,GACT,CAAC,aAAa,SAAS,IAAI,GAEvB,EAAE,GACF,qBAAqB,CAAC,aAAa,CAAC,SAAS,IAAI,GAC/C;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAEjC,MAAM,MAAM,uBAAuB,CACjC,SAAS,SAAS,WAAW,EAC7B,KAAK,GAAG,OAAO,EACf,OAAO,SAAS,SAAS,GAAG,SAAS,EACrC,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,EAC7C,QAAQ,GAAG,OAAO,IAChB;IACF;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1E,iBAAiB,CAAC,EACd,wCAAwC,GACxC,CAAC,CACC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EACpB,OAAO,EAAE,sBAAsB,CAC7B,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,CAAC,aAAa,CAAC,CACvB,KACE,wCAAwC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACvE,GAAG,IAAI,CACN,cAAc,CACZ,OAAO,CAAC,KAAK,CAAC,EACd,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAChE,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAChC,QAAQ,CACT,EACD,aAAa,GAAG,YAAY,GAAG,mBAAmB,CACnD,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,15 +1,14 @@
1
- import { QueryFunctionContext } from '@tanstack/query-core';
1
+ import { DefaultError, QueryObserverResult } from '@tanstack/query-core';
2
2
  import { Query } from 'mobx-tanstack-query';
3
- import { AnyObject, MaybeFalsy } from 'yummies/utils/types';
3
+ import { MaybeFalsy } from 'yummies/utils/types';
4
4
  import { EndpointQueryClient } from './endpoint-query-client.js';
5
5
  import { EndpointQueryOptions } from './endpoint-query.types.js';
6
6
  import { AnyEndpoint } from './endpoint.types.js';
7
- import { AnyHttpResponse } from './http-client.js';
8
- export declare class EndpointQuery<TResponse extends AnyHttpResponse, TInput extends AnyObject, TOutput = TResponse> extends Query<TOutput, TResponse['error'], TOutput, TOutput, any[]> {
7
+ export declare class EndpointQuery<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData> extends Query<TQueryFnData, TError, TData, TQueryData> {
9
8
  private endpoint;
10
- response: TResponse | null;
11
- constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, { input: getInput, options: getDynamicOptions, uniqKey, ...queryOptions }: EndpointQueryOptions<TResponse, TInput, TOutput>);
12
- setInput(input: MaybeFalsy<TInput>): Promise<TResponse>;
13
- protected getInputFromContext(ctx: QueryFunctionContext<any, any>): TInput;
9
+ response: TEndpoint['__response'] | null;
10
+ private uniqKey?;
11
+ constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, { transform: transformResponse, params: getParams, uniqKey, ...queryOptions }: EndpointQueryOptions<TEndpoint, TQueryFnData, TError, TData, TQueryData>);
12
+ start(input: MaybeFalsy<TEndpoint['__params']>): Promise<QueryObserverResult<TData, TError>>;
14
13
  }
15
14
  //# sourceMappingURL=endpoint-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAa,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAS,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAEL,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAyBlE,qBAAa,aAAa,CACxB,SAAS,SAAS,eAAe,EACjC,MAAM,SAAS,SAAS,EACxB,OAAO,GAAG,SAAS,CACnB,SAAQ,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAIjE,OAAO,CAAC,QAAQ;IAHlB,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAGxB,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,EACE,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EACP,GAAG,YAAY,EAChB,EAAE,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;IA+E/C,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAO7D,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,GACzB,MAAM;CAE/C"}
1
+ {"version":3,"file":"endpoint-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEZ,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAoB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAEL,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,qBAAa,aAAa,CACxB,SAAS,SAAS,WAAW,EAC7B,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAC9C,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,CACzB,SAAQ,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;IAMpD,OAAO,CAAC,QAAQ;IALlB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,OAAO,CAAC,CAAuB;gBAG7B,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,EACE,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,EACP,GAAG,YAAY,EAChB,EAAE,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;IAgFvE,KAAK,CACT,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACvC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAK/C"}
@@ -1,28 +1,13 @@
1
+ /* eslint-disable @typescript-eslint/no-use-before-define */
1
2
  /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- import { skipToken } from '@tanstack/query-core';
3
- import { makeObservable, observable, runInAction, when } from 'mobx';
3
+ import { skipToken, } from '@tanstack/query-core';
4
+ import { makeObservable, observable, runInAction } from 'mobx';
4
5
  import { Query } from 'mobx-tanstack-query';
5
- const buildOptionsFromInput = (endpoint, input, uniqKey) => {
6
- const { requiredParams } = endpoint.configuration;
7
- let hasRequiredParams = false;
8
- if (requiredParams.length > 0) {
9
- hasRequiredParams =
10
- !!input && requiredParams.every((param) => param in input);
11
- }
12
- else {
13
- hasRequiredParams = true;
14
- }
15
- return {
16
- enabled: hasRequiredParams,
17
- queryKey: hasRequiredParams
18
- ? endpoint.getQueryKey(input || {}, uniqKey)
19
- : skipToken,
20
- };
21
- };
22
6
  export class EndpointQuery extends Query {
23
7
  endpoint;
24
8
  response = null;
25
- constructor(endpoint, queryClient, { input: getInput, options: getDynamicOptions, uniqKey, ...queryOptions }) {
9
+ uniqKey;
10
+ constructor(endpoint, queryClient, { transform: transformResponse, params: getParams, uniqKey, ...queryOptions }) {
26
11
  super({
27
12
  ...queryOptions,
28
13
  queryClient,
@@ -37,24 +22,26 @@ export class EndpointQuery extends Query {
37
22
  },
38
23
  options: (query) => {
39
24
  const willEnableManually = queryOptions.enabled === false;
40
- const input = (getInput?.() || {});
41
- const builtOptions = buildOptionsFromInput(endpoint, input, uniqKey);
42
- const dynamicOuterOptions = getDynamicOptions?.(query);
25
+ const params = (getParams?.() || {});
26
+ const builtOptions = buildOptionsFromParams(endpoint, params, uniqKey);
27
+ // const dynamicOuterOptions = getDynamicOptions?.(query);
43
28
  let isEnabled = false;
44
29
  if (willEnableManually) {
45
- if (dynamicOuterOptions?.enabled != null) {
46
- isEnabled = dynamicOuterOptions.enabled;
47
- }
30
+ // if (dynamicOuterOptions?.enabled != null) {
31
+ // isEnabled = dynamicOuterOptions.enabled;
32
+ // }
48
33
  }
49
34
  else {
50
- const outerDynamicEnabled = dynamicOuterOptions?.enabled == null ||
51
- !!dynamicOuterOptions.enabled;
52
- isEnabled = builtOptions.enabled && outerDynamicEnabled;
35
+ // const outerDynamicEnabled =
36
+ // dynamicOuterOptions?.enabled == null ||
37
+ // !!dynamicOuterOptions.enabled;
38
+ // isEnabled = builtOptions.enabled && outerDynamicEnabled;
39
+ isEnabled = builtOptions.enabled;
53
40
  }
54
41
  return {
55
42
  ...query.options,
56
43
  ...builtOptions,
57
- ...dynamicOuterOptions,
44
+ // ...dynamicOuterOptions,
58
45
  enabled: isEnabled,
59
46
  };
60
47
  },
@@ -62,7 +49,7 @@ export class EndpointQuery extends Query {
62
49
  runInAction(() => {
63
50
  this.response = null;
64
51
  });
65
- const input = this.getInputFromContext(ctx);
52
+ const input = getInputFromContext(ctx);
66
53
  let requestParams = input.request;
67
54
  if (requestParams) {
68
55
  if (!requestParams.signal) {
@@ -80,21 +67,35 @@ export class EndpointQuery extends Query {
80
67
  runInAction(() => {
81
68
  this.response = response;
82
69
  });
83
- const output = response.data;
84
- return output;
70
+ return (await transformResponse?.(response)) ?? response.data;
85
71
  },
86
72
  });
87
73
  this.endpoint = endpoint;
88
- observable.ref(this, 'lastResponse');
74
+ this.uniqKey = uniqKey;
75
+ observable.ref(this, 'response');
89
76
  makeObservable(this);
90
77
  }
91
- async setInput(input) {
92
- this.update(buildOptionsFromInput(this.endpoint, input));
93
- await when(() => !this.result.isFetching);
94
- // @ts-ignore
95
- return this.result.data;
96
- }
97
- getInputFromContext(ctx) {
98
- return (ctx.queryKey.at(-2) || {});
78
+ async start(input) {
79
+ return await super.start(buildOptionsFromParams(this.endpoint, input, this.uniqKey));
99
80
  }
100
81
  }
82
+ const getInputFromContext = (ctx) => {
83
+ return (ctx.queryKey.at(-2) || {});
84
+ };
85
+ const buildOptionsFromParams = (endpoint, params, uniqKey) => {
86
+ const { requiredParams } = endpoint.configuration;
87
+ let hasRequiredParams = false;
88
+ if (requiredParams.length > 0) {
89
+ hasRequiredParams =
90
+ !!params && requiredParams.every((param) => param in params);
91
+ }
92
+ else {
93
+ hasRequiredParams = true;
94
+ }
95
+ return {
96
+ enabled: hasRequiredParams,
97
+ queryKey: hasRequiredParams
98
+ ? endpoint.getQueryKey(params || {}, uniqKey)
99
+ : skipToken,
100
+ };
101
+ };
@@ -1,7 +1,8 @@
1
- import { Query, QueryConfig, QueryDynamicOptions } from 'mobx-tanstack-query';
1
+ import { DefaultError } from '@tanstack/query-core';
2
+ import { QueryConfig } from 'mobx-tanstack-query';
2
3
  import { FnValue } from 'yummies/common';
3
4
  import { AnyObject, Maybe, MaybeFalsy } from 'yummies/utils/types';
4
- import { AnyHttpResponse } from './http-client.js';
5
+ import { AnyEndpoint } from './endpoint.types.js';
5
6
  export interface EndpointQueryMeta {
6
7
  endpointId: string;
7
8
  endpointQuery: true;
@@ -11,10 +12,14 @@ export interface EndpointQueryMeta {
11
12
  pathDeclaration: string;
12
13
  }
13
14
  export type EndpointQueryUnitKey = Maybe<FnValue<string | number | AnyObject | boolean>>;
14
- export type EndpointQueryOptions<TResponse extends AnyHttpResponse, TInput extends AnyObject, TOutput = TResponse> = {
15
- input?: () => MaybeFalsy<TInput>;
16
- } & Omit<QueryConfig<TOutput, TResponse['error'], TOutput, TOutput, any[]>, 'options' | 'queryFn' | 'queryClient' | 'queryKey'> & {
15
+ export type EndpointQueryOptions<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData> = {
16
+ params?: () => MaybeFalsy<TEndpoint['__params']>;
17
+ /**
18
+ * Transform response to QueryFnData
19
+ */
20
+ transform?: (response: TEndpoint['__response']) => TQueryFnData | Promise<TQueryFnData>;
21
+ } & Omit<QueryConfig<NoInfer<TQueryFnData>, TError, TData, TQueryData>, 'options' | 'queryFn' | 'queryClient' | 'queryKey' | '_defaulted' | '_optimisticResults' | 'experimental_prefetchInRender' | 'enabled' | 'queryHash' | 'queryKeyHashFn'> & {
17
22
  uniqKey?: EndpointQueryUnitKey;
18
- options?: (query: NoInfer<Query<NoInfer<TOutput>, NoInfer<TResponse['error']>, NoInfer<TOutput>, NoInfer<TOutput>, NoInfer<any[]>>>) => Omit<QueryDynamicOptions<TOutput, TResponse['error'], TOutput, TOutput, any[]>, 'queryKey' | 'queryFn' | 'queryHash' | '_defaulted' | 'experimental_prefetchInRender' | '_optimisticResults'>;
23
+ enabled?: boolean;
19
24
  };
20
25
  //# sourceMappingURL=endpoint-query.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-query.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,CAC/C,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,SAAS,SAAS,eAAe,EACjC,MAAM,SAAS,SAAS,EACxB,OAAO,GAAG,SAAS,IACjB;IACF,KAAK,CAAC,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;CAClC,GAAG,IAAI,CACN,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EACjE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CACnD,GAAG;IACA,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,CACZ,KAAK,CACH,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAC3B,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,CAAC,OAAO,CAAC,EAChB,OAAO,CAAC,GAAG,EAAE,CAAC,CACf,CACF,KACE,IAAI,CACP,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EACvE,UAAU,GACV,SAAS,GACT,WAAW,GACX,YAAY,GACZ,+BAA+B,GAC/B,oBAAoB,CACvB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"endpoint-query.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,CAC/C,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,SAAS,SAAS,WAAW,EAC7B,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAC9C,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EACpB,UAAU,GAAG,YAAY,IACvB;IACF,MAAM,CAAC,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD;;OAEG;IACH,SAAS,CAAC,EAAE,CACV,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,KAC9B,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C,GAAG,IAAI,CACN,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAC3D,SAAS,GACT,SAAS,GACT,aAAa,GACb,UAAU,GACV,YAAY,GACZ,oBAAoB,GACpB,+BAA+B,GAC/B,SAAS,GACT,WAAW,GACX,gBAAgB,CACnB,GAAG;IACA,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -1,28 +1,30 @@
1
- import { InvalidateOptions, InvalidateQueryFilters } from '@tanstack/query-core';
1
+ import { DefaultError, InvalidateOptions, InvalidateQueryFilters } from '@tanstack/query-core';
2
2
  import { AllPropertiesOptional, AnyObject } from 'yummies/utils/types';
3
- import { EndpointMutation, EndpointMutationOptions } from './endpoint-mutation.js';
3
+ import { EndpointMutation } from './endpoint-mutation.js';
4
+ import { EndpointMutationOptions } from './endpoint-mutation.types.js';
4
5
  import { EndpointQueryClient } from './endpoint-query-client.js';
5
6
  import { EndpointQuery } from './endpoint-query.js';
6
7
  import { EndpointQueryOptions, EndpointQueryUnitKey } from './endpoint-query.types.js';
7
8
  import { EndpointConfiguration } from './endpoint.types.js';
8
9
  import type { HttpClient, HttpResponse } from './http-client.js';
9
- export interface Endpoint<TResponse extends HttpResponse<any, any>, TInput extends AnyObject, TMetaData extends AnyObject = AnyObject> {
10
- (...args: AllPropertiesOptional<TInput> extends true ? [input?: TInput] : [input: TInput]): ReturnType<Endpoint<TResponse, TInput, TMetaData>['request']>;
10
+ export interface Endpoint<TResponse extends HttpResponse<any, any>, TParams extends AnyObject, TMetaData extends AnyObject = AnyObject> {
11
+ (...args: AllPropertiesOptional<TParams> extends true ? [params?: TParams] : [params: TParams]): ReturnType<Endpoint<TResponse, TParams, TMetaData>['request']>;
11
12
  }
12
- export declare class Endpoint<TResponse extends HttpResponse<any, any>, TInput extends AnyObject, TMetaData extends AnyObject = AnyObject> {
13
- configuration: EndpointConfiguration<NoInfer<TInput>, TMetaData>;
13
+ export declare class Endpoint<TResponse extends HttpResponse<any, any>, TParams extends AnyObject, TMetaData extends AnyObject = AnyObject> {
14
+ configuration: EndpointConfiguration<NoInfer<TParams>, TMetaData>;
14
15
  protected queryClient: EndpointQueryClient;
15
16
  protected http: HttpClient;
16
17
  endpointId: string;
18
+ __params: TParams;
19
+ __response: TResponse;
17
20
  meta: TMetaData;
18
- constructor(configuration: EndpointConfiguration<NoInfer<TInput>, TMetaData>, queryClient: EndpointQueryClient, http: HttpClient);
19
- getFullUrl(...args: AllPropertiesOptional<TInput> extends true ? [input?: TInput] : [input: TInput]): string;
20
- getPath(...args: AllPropertiesOptional<TInput> extends true ? [input?: TInput] : [input: TInput]): string;
21
+ constructor(configuration: EndpointConfiguration<NoInfer<TParams>, TMetaData>, queryClient: EndpointQueryClient, http: HttpClient);
22
+ getFullUrl(...args: AllPropertiesOptional<TParams> extends true ? [input?: TParams] : [input: TParams]): string;
23
+ getPath(...args: AllPropertiesOptional<TParams> extends true ? [input?: TParams] : [input: TParams]): string;
21
24
  get tags(): string[];
22
25
  get path(): string[];
23
26
  get operationId(): string;
24
- request(...args: AllPropertiesOptional<TInput> extends true ? [input?: TInput] : [input: TInput]): Promise<TResponse>;
25
- getQueryKey(...args: AllPropertiesOptional<TInput> extends true ? [input?: TInput, uniqKey?: EndpointQueryUnitKey] : [input: TInput, uniqKey?: EndpointQueryUnitKey]): any[];
27
+ request(...args: AllPropertiesOptional<TParams> extends true ? [input?: TParams] : [input: TParams]): Promise<TResponse>;
26
28
  /**
27
29
  * segment - last segment number in path which need to crop for invalidate
28
30
  * @example
@@ -34,10 +36,11 @@ export declare class Endpoint<TResponse extends HttpResponse<any, any>, TInput e
34
36
  }, options?: InvalidateOptions): Promise<void>;
35
37
  invalidateByOperationId(filters?: Omit<InvalidateQueryFilters<any[]>, 'queryKey' | 'predicate'>, options?: InvalidateOptions): Promise<void>;
36
38
  invalidateByTags(filters?: Omit<InvalidateQueryFilters<any[]>, 'queryKey' | 'predicate'>, options?: InvalidateOptions): Promise<void>;
37
- invalidate(input: TInput, filters?: Omit<InvalidateQueryFilters<any[]>, 'queryKey' | 'predicate'> & {
39
+ invalidate(input: TParams, filters?: Omit<InvalidateQueryFilters<any[]>, 'queryKey' | 'predicate'> & {
38
40
  queryKeyIndex?: number;
39
41
  }, options?: InvalidateOptions): Promise<void>;
40
- toMutation<TOutput = TResponse, TMutationMeta extends AnyObject | void = void>(options: EndpointMutationOptions<TOutput, TInput, TResponse, TMutationMeta>): EndpointMutation<TOutput, TInput, TResponse, TMutationMeta>;
41
- toQuery<TOutput = TResponse['data']>(options: EndpointQueryOptions<TResponse, TInput, TOutput>): EndpointQuery<TResponse, TInput, TOutput>;
42
+ getQueryKey(...args: AllPropertiesOptional<TParams> extends true ? [input?: TParams, uniqKey?: EndpointQueryUnitKey] : [input: TParams, uniqKey?: EndpointQueryUnitKey]): any[];
43
+ toMutation<TData = TResponse['data'], TMutationMeta extends AnyObject | void = void, TContext = unknown>(options: EndpointMutationOptions<this, TData, TParams, TMutationMeta, TContext>): EndpointMutation<this, TData, TParams, TMutationMeta, TContext>;
44
+ toQuery<TQueryFnData = TResponse['data'], TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData>(options: EndpointQueryOptions<this, TQueryFnData, TError, TData, TQueryData>): EndpointQuery<this, TQueryFnData, TError, TData, TQueryData>;
42
45
  }
43
46
  //# sourceMappingURL=endpoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { resolveFnValue } from 'yummies/common';
2
- import { EndpointMutation, } from './endpoint-mutation.js';
2
+ import { EndpointMutation } from './endpoint-mutation.js';
3
3
  import { EndpointQuery } from './endpoint-query.js';
4
4
  export class Endpoint {
5
5
  configuration;
6
6
  queryClient;
7
7
  http;
8
8
  endpointId;
9
+ __params;
10
+ __response;
9
11
  meta;
10
12
  constructor(configuration, queryClient, http) {
11
13
  this.configuration = configuration;
@@ -54,15 +56,6 @@ export class Endpoint {
54
56
  request(...args) {
55
57
  return this.http.request(this.configuration.params(args[0] ?? {}));
56
58
  }
57
- getQueryKey(...args) {
58
- const input = args[0] ?? {};
59
- return [
60
- ...this.configuration.path,
61
- this.configuration.operationId,
62
- input,
63
- resolveFnValue(args[1]),
64
- ];
65
- }
66
59
  /**
67
60
  * segment - last segment number in path which need to crop for invalidate
68
61
  * @example
@@ -85,6 +78,15 @@ export class Endpoint {
85
78
  exact: filters?.exact ?? false,
86
79
  }, options);
87
80
  }
81
+ getQueryKey(...args) {
82
+ const params = args[0] ?? {};
83
+ return [
84
+ ...this.configuration.path,
85
+ this.configuration.operationId,
86
+ params,
87
+ resolveFnValue(args[1]),
88
+ ];
89
+ }
88
90
  toMutation(options) {
89
91
  return new EndpointMutation(this, this.queryClient, options);
90
92
  }
@@ -1,4 +1,4 @@
1
- import { AllPropertiesOptional, AnyObject } from 'yummies/utils/types';
1
+ import { AnyObject } from 'yummies/utils/types';
2
2
  import type { Endpoint } from './endpoint.js';
3
3
  import { FullRequestParams } from './http-client.js';
4
4
  export interface EndpointConfiguration<TInput extends AnyObject, TMetaData extends AnyObject = AnyObject> {
@@ -9,11 +9,6 @@ export interface EndpointConfiguration<TInput extends AnyObject, TMetaData exten
9
9
  params: (input: Partial<TInput>) => FullRequestParams;
10
10
  tags: string[];
11
11
  }
12
- export type EndpointMutationInput<TBaseInput extends AnyObject, TMutationMeta extends AnyObject | void = void> = TBaseInput & (TMutationMeta extends void ? {} : AllPropertiesOptional<TMutationMeta> extends true ? {
13
- meta?: TMutationMeta;
14
- } : {
15
- meta: TMutationMeta;
16
- });
17
12
  export type AnyEndpoint = Endpoint<any, any, any>;
18
13
  export type InferEndpointData<TEndpoint extends AnyEndpoint> = TEndpoint extends Endpoint<infer T, any, any> ? T : never;
19
14
  export type InferEndpointResponse<TEndpoint extends AnyEndpoint> = TEndpoint extends Endpoint<infer T, any, any> ? T : never;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,qBAAqB,CACpC,MAAM,SAAS,SAAS,EACxB,SAAS,SAAS,SAAS,GAAG,SAAS;IAEvC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAC;IACtD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,SAAS,EAC5B,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG,IAAI,IAC3C,UAAU,GACZ,CAAC,aAAa,SAAS,IAAI,GAEvB,EAAE,GACF,qBAAqB,CAAC,aAAa,CAAC,SAAS,IAAI,GAC/C;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,WAAW,IACzD,SAAS,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,WAAW,IAC7D,SAAS,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,WAAW,IAC1D,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,WAAW,IAC7D,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"endpoint.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,qBAAqB,CACpC,MAAM,SAAS,SAAS,EACxB,SAAS,SAAS,SAAS,GAAG,SAAS;IAEvC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAC;IACtD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,WAAW,IACzD,SAAS,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,WAAW,IAC7D,SAAS,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,kBAAkB,CAAC,SAAS,SAAS,WAAW,IAC1D,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,WAAW,IAC7D,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -2,5 +2,8 @@ export * from './endpoint.js';
2
2
  export * from './endpoint.types.js';
3
3
  export * from './http-client.js';
4
4
  export * from './endpoint-query-client.js';
5
+ export * from './endpoint-query.js';
5
6
  export * from './endpoint-query.types.js';
7
+ export * from './endpoint-mutation.js';
8
+ export * from './endpoint-mutation.types.js';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
package/runtime/index.js CHANGED
@@ -2,4 +2,7 @@ export * from './endpoint.js';
2
2
  export * from './endpoint.types.js';
3
3
  export * from './http-client.js';
4
4
  export * from './endpoint-query-client.js';
5
+ export * from './endpoint-query.js';
5
6
  export * from './endpoint-query.types.js';
7
+ export * from './endpoint-mutation.js';
8
+ export * from './endpoint-mutation.types.js';