mobx-tanstack-query-api 0.1.2 → 0.2.1

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/README.md CHANGED
@@ -14,4 +14,6 @@
14
14
 
15
15
  # WIP
16
16
 
17
- API codegen from swagger
17
+ API codegen from swagger
18
+
19
+ # [Documentation](https://js2me.github.io/mobx-tanstack-query/other/swagger-codegen.html)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-tanstack-query-api",
3
- "version": "0.1.2",
3
+ "version": "0.2.1",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",
@@ -9,6 +9,7 @@ export declare class EndpointInfiniteQuery<TEndpoint extends AnyEndpoint, TQuery
9
9
  response: TEndpoint['__response'] | null;
10
10
  params: TEndpoint['__params'] | null;
11
11
  private uniqKey?;
12
+ private paramsFn;
12
13
  constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, queryOptionsInput: EndpointInfiniteQueryOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData> | (() => EndpointInfiniteQueryFlattenOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData>));
13
14
  update({ params, ...options }: EndpointInfiniteQueryUpdateOptionsAllVariants<TEndpoint, TQueryFnData, TError, TPageParam, TData>): void;
14
15
  start(params: MaybeFalsy<TEndpoint['__params']>): Promise<QueryObserverResult<TData, TError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-infinite-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-infinite-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAS,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,qBAAa,qBAAqB,CAChC,SAAS,SAAS,WAAW,EAC7B,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAC9C,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,OAAO,EACpB,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAC9C,SAAQ,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAOnE,OAAO,CAAC,QAAQ;IANlB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAChD,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,OAAO,CAAC,CAAuB;gBAG7B,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAEhC,iBAAiB,EACb,4BAA4B,CAC1B,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN,GACD,CAAC,MAAM,mCAAmC,CACxC,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN,CAAC;IAiGR,MAAM,CAAC,EACL,MAAM,EACN,GAAG,OAAO,EACX,EAAE,6CAA6C,CAC9C,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN;IAOK,KAAK,CACT,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAK/C"}
1
+ {"version":3,"file":"endpoint-infinite-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-infinite-query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAS,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,qBAAa,qBAAqB,CAChC,SAAS,SAAS,WAAW,EAC7B,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAC9C,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,OAAO,EACpB,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAC9C,SAAQ,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAenE,OAAO,CAAC,QAAQ;IAdlB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAChD,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,OAAO,CAAC,CAAuB;IAEvC,OAAO,CAAC,QAAQ,CAMJ;gBAGF,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAEhC,iBAAiB,EACb,4BAA4B,CAC1B,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN,GACD,CAAC,MAAM,mCAAmC,CACxC,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN,CAAC;IAoGR,MAAM,CAAC,EACL,MAAM,EACN,GAAG,OAAO,EACX,EAAE,6CAA6C,CAC9C,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,KAAK,CACN;IAOK,KAAK,CACT,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAK/C"}
@@ -1,13 +1,14 @@
1
1
  import { makeObservable, observable, runInAction } from 'mobx';
2
2
  import { InfiniteQuery } from 'mobx-tanstack-query';
3
- import { buildOptionsFromParams, getParamsFromContext, } from './endpoint-query.js';
3
+ import { buildOptionsFromParams } from './endpoint-query.js';
4
4
  export class EndpointInfiniteQuery extends InfiniteQuery {
5
5
  endpoint;
6
6
  response = null;
7
7
  params = null;
8
8
  uniqKey;
9
+ paramsFn;
9
10
  constructor(endpoint, queryClient, queryOptionsInput) {
10
- const { uniqKey, transform: transformResponse, ...queryOptions } = typeof queryOptionsInput === 'function'
11
+ const { uniqKey, transform: transformResponse, params: paramsFn, ...queryOptions } = typeof queryOptionsInput === 'function'
11
12
  ? queryOptionsInput()
12
13
  : queryOptionsInput;
13
14
  super({
@@ -18,16 +19,15 @@ export class EndpointInfiniteQuery extends InfiniteQuery {
18
19
  const extraOptions = {};
19
20
  let willEnableManually;
20
21
  let params;
22
+ const pageParam = query.options.initialPageParam;
21
23
  if (typeof queryOptionsInput === 'function') {
22
- const { params: dynamicParams, ...dynamicOptions } = queryOptionsInput();
23
- Object.assign(extraOptions, dynamicOptions);
24
- params = dynamicParams;
24
+ Object.assign(extraOptions, queryOptionsInput());
25
+ params = paramsFn(pageParam);
25
26
  willEnableManually = false;
26
27
  }
27
28
  else {
28
- const { params: dynamicParams, ...otherOptions } = queryOptionsInput;
29
- willEnableManually = otherOptions.enabled === false;
30
- params = dynamicParams == null ? {} : dynamicParams();
29
+ willEnableManually = queryOptionsInput.enabled === false;
30
+ params = paramsFn(pageParam);
31
31
  }
32
32
  const builtOptions = buildOptionsFromParams(endpoint, params, uniqKey);
33
33
  // const dynamicOuterOptions = getDynamicOptions?.(query);
@@ -53,7 +53,7 @@ export class EndpointInfiniteQuery extends InfiniteQuery {
53
53
  };
54
54
  },
55
55
  queryFn: async (ctx) => {
56
- const params = getParamsFromContext(ctx);
56
+ const params = paramsFn(ctx.pageParam ?? queryOptions.initialPageParam);
57
57
  runInAction(() => {
58
58
  this.response = null;
59
59
  this.params = params;
@@ -79,6 +79,7 @@ export class EndpointInfiniteQuery extends InfiniteQuery {
79
79
  },
80
80
  });
81
81
  this.endpoint = endpoint;
82
+ this.paramsFn = paramsFn;
82
83
  this.uniqKey = uniqKey;
83
84
  observable.ref(this, 'response');
84
85
  observable.ref(this, 'params');
@@ -8,7 +8,7 @@ type ShortInfiniteQueryConfig<TQueryFnData, TError = DefaultError, TPageParam =
8
8
  };
9
9
  export type EndpointInfiniteQueryFlattenOptions<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = ShortInfiniteQueryConfig<NoInfer<TQueryFnData>, TError, TPageParam, TData> & {
10
10
  uniqKey?: EndpointQueryUniqKey;
11
- params?: MaybeFalsy<TEndpoint['__params']>;
11
+ params: (pageParam: NoInfer<TPageParam>) => MaybeFalsy<TEndpoint['__params']>;
12
12
  /**
13
13
  * Transform response to QueryFnData
14
14
  */
@@ -16,7 +16,7 @@ export type EndpointInfiniteQueryFlattenOptions<TEndpoint extends AnyEndpoint, T
16
16
  };
17
17
  export type EndpointInfiniteQueryOptions<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = ShortInfiniteQueryConfig<NoInfer<TQueryFnData>, TError, TPageParam, TData> & {
18
18
  uniqKey?: EndpointQueryUniqKey;
19
- params?: () => MaybeFalsy<TEndpoint['__params']>;
19
+ params: (pageParam: NoInfer<TPageParam>) => MaybeFalsy<TEndpoint['__params']>;
20
20
  /**
21
21
  * Transform response to QueryFnData
22
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-infinite-query.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-infinite-query.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-infinite-query.types.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-infinite-query.types.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,15 @@ import { AnyEndpoint } from './endpoint.types.js';
7
7
  export declare class EndpointQuery<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData> extends Query<TQueryFnData, TError, TData, TQueryData> {
8
8
  private endpoint;
9
9
  response: TEndpoint['__response'] | null;
10
- params: TEndpoint['__params'] | null;
11
10
  private uniqKey?;
11
+ private _observableData;
12
12
  constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, queryOptionsInput: EndpointQueryOptions<TEndpoint, TQueryFnData, TError, TData, TQueryData> | (() => EndpointQueryFlattenOptions<TEndpoint, TQueryFnData, TError, TData, TQueryData>));
13
+ get params(): MaybeFalsy<TEndpoint["__params"]>;
13
14
  update({ params, ...options }: Omit<QueryUpdateOptionsAllVariants<TQueryFnData, TError, TData, TQueryData>, ExcludedQueryKeys> & {
14
15
  params?: MaybeFalsy<TEndpoint['__params']>;
15
16
  }): void;
16
17
  start(params: MaybeFalsy<TEndpoint['__params']>): Promise<QueryObserverResult<TData, TError>>;
18
+ destroy(): void;
17
19
  }
18
20
  export declare const getParamsFromContext: (ctx: QueryFunctionContext<any, any>) => AnyEndpoint["__params"];
19
21
  export declare const buildOptionsFromParams: (endpoint: AnyEndpoint, params: MaybeFalsy<AnyObject>, uniqKey: Maybe<EndpointQueryUniqKey>) => {
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,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;IAOpD,OAAO,CAAC,QAAQ;IANlB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAChD,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAQ;IAE5C,OAAO,CAAC,OAAO,CAAC,CAAuB;gBAG7B,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EACb,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,GACxE,CAAC,MAAM,2BAA2B,CAChC,SAAS,EACT,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,CACX,CAAC;IAiGR,MAAM,CAAC,EACL,MAAM,EACN,GAAG,OAAO,EACX,EAAE,IAAI,CACL,6BAA6B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EACtE,iBAAiB,CAClB,GAAG;QACF,MAAM,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;KAC5C;IAOK,KAAK,CACT,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAK/C;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,KAChC,WAAW,CAAC,UAAU,CAC7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,EACrB,QAAQ,UAAU,CAAC,SAAS,CAAC,EAC7B,SAAS,KAAK,CAAC,oBAAoB,CAAC,KACnC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAerC,CAAC"}
1
+ {"version":3,"file":"endpoint-query.d.ts","sourceRoot":"","sources":["../../src/runtime/endpoint-query.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,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;IAQpD,OAAO,CAAC,QAAQ;IAPlB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAQ;IAEhD,OAAO,CAAC,OAAO,CAAC,CAAuB;IAEvC,OAAO,CAAC,eAAe,CAAoC;gBAGjD,QAAQ,EAAE,WAAW,EAC7B,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EACb,oBAAoB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,GACxE,CAAC,MAAM,2BAA2B,CAChC,SAAS,EACT,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,CACX,CAAC;IA+HR,IAAI,MAAM,sCAET;IAED,MAAM,CAAC,EACL,MAAM,EACN,GAAG,OAAO,EACX,EAAE,IAAI,CACL,6BAA6B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EACtE,iBAAiB,CAClB,GAAG;QACF,MAAM,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;KAC5C;IAUK,KAAK,CACT,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAS9C,OAAO,IAAI,IAAI;CAOhB;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,KAChC,WAAW,CAAC,UAAU,CAC7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,EACrB,QAAQ,UAAU,CAAC,SAAS,CAAC,EAC7B,SAAS,KAAK,CAAC,oBAAoB,CAAC,KACnC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAerC,CAAC"}
@@ -1,61 +1,70 @@
1
- import { makeObservable, observable, runInAction } from 'mobx';
1
+ import { action, comparer, computed, makeObservable, observable, reaction, runInAction, } from 'mobx';
2
2
  import { Query } from 'mobx-tanstack-query';
3
+ import { callFunction } from 'yummies/common';
3
4
  export class EndpointQuery extends Query {
4
5
  endpoint;
5
6
  response = null;
6
- params = null;
7
7
  uniqKey;
8
+ _observableData;
8
9
  constructor(endpoint, queryClient, queryOptionsInput) {
9
10
  const { uniqKey, transform: transformResponse, ...queryOptions } = typeof queryOptionsInput === 'function'
10
11
  ? queryOptionsInput()
11
12
  : queryOptionsInput;
13
+ const _observableData = {
14
+ params: null,
15
+ dynamicOptions: undefined,
16
+ };
17
+ makeObservable(_observableData, {
18
+ params: observable.ref,
19
+ dynamicOptions: observable,
20
+ });
21
+ const disposeFn = reaction(() => {
22
+ if (typeof queryOptionsInput === 'function') {
23
+ const { params, abortSignal, select, onDone, onError, onInit, enableOnDemand, ...dynamicOptions } = queryOptionsInput();
24
+ return {
25
+ params,
26
+ dynamicOptions: Object.keys(dynamicOptions).length > 0
27
+ ? dynamicOptions
28
+ : undefined,
29
+ };
30
+ }
31
+ else {
32
+ return {
33
+ params: callFunction(queryOptionsInput.params),
34
+ dynamicOptions: undefined,
35
+ };
36
+ }
37
+ }, action(({ params, dynamicOptions }) => {
38
+ _observableData.params = params;
39
+ _observableData.dynamicOptions = dynamicOptions;
40
+ }), {
41
+ fireImmediately: true,
42
+ });
12
43
  super({
13
44
  ...queryOptions,
14
45
  queryClient,
15
46
  meta: endpoint.toQueryMeta(queryOptions.meta),
16
47
  options: (query) => {
17
- const extraOptions = {};
18
- let willEnableManually;
19
- let params;
20
- if (typeof queryOptionsInput === 'function') {
21
- const { params: dynamicParams, ...dynamicOptions } = queryOptionsInput();
22
- Object.assign(extraOptions, dynamicOptions);
23
- params = dynamicParams;
24
- willEnableManually = false;
25
- }
26
- else {
27
- const { params: dynamicParams, ...otherOptions } = queryOptionsInput;
28
- willEnableManually = otherOptions.enabled === false;
29
- params = dynamicParams == null ? {} : dynamicParams();
30
- }
31
- const builtOptions = buildOptionsFromParams(endpoint, params, uniqKey);
48
+ const builtOptions = buildOptionsFromParams(endpoint, _observableData.params, uniqKey);
32
49
  // const dynamicOuterOptions = getDynamicOptions?.(query);
33
- let isEnabled = false;
34
- if (willEnableManually) {
35
- // if (dynamicOuterOptions?.enabled != null) {
36
- // isEnabled = dynamicOuterOptions.enabled;
37
- // }
38
- }
39
- else {
40
- // const outerDynamicEnabled =
41
- // dynamicOuterOptions?.enabled == null ||
42
- // !!dynamicOuterOptions.enabled;
43
- // isEnabled = builtOptions.enabled && outerDynamicEnabled;
44
- isEnabled = builtOptions.enabled;
45
- }
50
+ const isEnabled = typeof queryOptionsInput !== 'function' &&
51
+ queryOptionsInput.enabled !== false &&
52
+ builtOptions.enabled;
46
53
  return {
47
54
  ...query.options,
48
55
  ...builtOptions,
49
56
  // ...dynamicOuterOptions,
50
57
  enabled: isEnabled,
51
- ...extraOptions,
58
+ ..._observableData.dynamicOptions,
52
59
  };
53
60
  },
54
61
  queryFn: async (ctx) => {
55
62
  const params = getParamsFromContext(ctx);
56
63
  runInAction(() => {
57
64
  this.response = null;
58
- this.params = params;
65
+ if (!comparer.structural(params, _observableData.params)) {
66
+ _observableData.params = params;
67
+ }
59
68
  });
60
69
  let requestParams = params.request;
61
70
  if (requestParams) {
@@ -80,18 +89,36 @@ export class EndpointQuery extends Query {
80
89
  this.endpoint = endpoint;
81
90
  this.uniqKey = uniqKey;
82
91
  observable.ref(this, 'response');
83
- observable.ref(this, 'params');
92
+ computed.struct(this, 'params');
84
93
  makeObservable(this);
94
+ this._observableData = _observableData;
95
+ this.abortController.signal.addEventListener('abort', disposeFn);
96
+ }
97
+ get params() {
98
+ return this._observableData.params;
85
99
  }
86
100
  update({ params, ...options }) {
101
+ runInAction(() => {
102
+ this._observableData.params = params;
103
+ });
87
104
  return super.update({
88
105
  ...buildOptionsFromParams(this.endpoint, params, this.uniqKey),
89
106
  ...options,
90
107
  });
91
108
  }
92
109
  async start(params) {
110
+ runInAction(() => {
111
+ this._observableData.params = params;
112
+ });
93
113
  return await super.start(buildOptionsFromParams(this.endpoint, params, this.uniqKey));
94
114
  }
115
+ destroy() {
116
+ super.destroy();
117
+ runInAction(() => {
118
+ this._observableData.params = undefined;
119
+ this._observableData.dynamicOptions = undefined;
120
+ });
121
+ }
95
122
  }
96
123
  export const getParamsFromContext = (ctx) => {
97
124
  return (ctx.queryKey.at(-2) || {});