mobx-tanstack-query-api 0.8.0 → 0.8.2

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.8.0",
3
+ "version": "0.8.2",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",
@@ -23,11 +23,11 @@
23
23
  "@types/lodash": "^4.17.16",
24
24
  "@types/lodash-es": "^4.17.12",
25
25
  "http-status-code-types": "^0.0.2",
26
- "mobx-tanstack-query": "^6.2.0",
26
+ "mobx-tanstack-query": "^6.2.2",
27
27
  "swagger-typescript-api": "13.2.7",
28
28
  "ts-morph": "^26.0.0",
29
29
  "undici-types": "^7.11.0",
30
- "yummies": "^4.11.1"
30
+ "yummies": "^4.12.2"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/node": "^20.17.11",
@@ -6,7 +6,6 @@ import { EndpointQueryFlattenOptions, EndpointQueryOptions, EndpointQueryUniqKey
6
6
  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
- private uniqKey?;
10
9
  private _observableData;
11
10
  constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, queryOptionsInput: EndpointQueryOptions<TEndpoint, TQueryFnData, TError, TData, TQueryData> | (() => EndpointQueryFlattenOptions<TEndpoint, TQueryFnData, TError, TData, TQueryData>));
12
11
  get params(): MaybeFalsy<TEndpoint["__params"]>;
@@ -1 +1 @@
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;AAY9B,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAW,MAAM,qBAAqB,CAAC;AAE5E,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;AAUlD,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,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;IAsLR,IAAI,MAAM,sCAET;IAED,IAAI,QAAQ,mCAEX;IAED,MAAM,CACJ,YAAY,EAAE,IAAI,CAChB,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;IAyBG,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
+ {"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;AAS9B,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAW,MAAM,qBAAqB,CAAC;AAE5E,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;AAWlD,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;IAIpD,OAAO,CAAC,QAAQ;IAHlB,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;IAqLR,IAAI,MAAM,sCAET;IAED,IAAI,QAAQ,mCAEX;IAED,MAAM,CACJ,YAAY,EAAE,IAAI,CAChB,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;IA6BG,KAAK,CACT,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAa9C,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,9 +1,9 @@
1
- import { comparer, computed, makeObservable, observable, onBecomeObserved, onBecomeUnobserved, reaction, runInAction, $mobx, } from 'mobx';
1
+ import { comparer, computed, makeObservable, observable, reaction, runInAction, } from 'mobx';
2
2
  import { Query } from 'mobx-tanstack-query';
3
3
  import { callFunction } from 'yummies/common';
4
+ import { getMobxAdministration, lazyObserve } from 'yummies/mobx';
4
5
  export class EndpointQuery extends Query {
5
6
  endpoint;
6
- uniqKey;
7
7
  _observableData;
8
8
  constructor(endpoint, queryClient, queryOptionsInput) {
9
9
  const isQueryOptionsInputFn = typeof queryOptionsInput === 'function';
@@ -15,6 +15,7 @@ export class EndpointQuery extends Query {
15
15
  params: null,
16
16
  dynamicOptions: undefined,
17
17
  response: null,
18
+ uniqKey: unpackedQueryOptionsInput.uniqKey,
18
19
  };
19
20
  if (!isQueryOptionsInputFn && typeof params !== 'function') {
20
21
  if ('params' in unpackedQueryOptionsInput) {
@@ -35,7 +36,7 @@ export class EndpointQuery extends Query {
35
36
  queryClient,
36
37
  meta: endpoint.toQueryMeta(queryOptions.meta),
37
38
  options: (query) => {
38
- const builtOptions = buildOptionsFromParams(endpoint, _observableData.params, uniqKey);
39
+ const builtOptions = buildOptionsFromParams(endpoint, _observableData.params, _observableData.uniqKey);
39
40
  let isEnabled = !!_observableData.initialized && builtOptions.enabled;
40
41
  if (typeof queryOptionsInput !== 'function' &&
41
42
  queryOptionsInput.enabled === false) {
@@ -76,8 +77,7 @@ export class EndpointQuery extends Query {
76
77
  },
77
78
  });
78
79
  this.endpoint = endpoint;
79
- // @ts-ignore
80
- const parentAtom = this[$mobx];
80
+ const parentAtom = getMobxAdministration(this);
81
81
  computed.struct(this, 'params');
82
82
  computed.struct(this, 'response');
83
83
  makeObservable(this);
@@ -85,9 +85,11 @@ export class EndpointQuery extends Query {
85
85
  const createParamsReaction = () => reaction(() => {
86
86
  let outDynamicOptions;
87
87
  let outParams;
88
+ let uniqKey;
88
89
  if (isQueryOptionsInputFn) {
89
90
  const result = queryOptionsInput();
90
- const { params, abortSignal, select, onDone, onError, onInit, enableOnDemand, ...dynamicOptions } = result;
91
+ const { params, abortSignal, select, onDone, onError, onInit, enableOnDemand, uniqKey: _uniqKey, ...dynamicOptions } = result;
92
+ uniqKey = _uniqKey;
91
93
  if ('params' in result) {
92
94
  outParams = result.params;
93
95
  }
@@ -101,42 +103,38 @@ export class EndpointQuery extends Query {
101
103
  }
102
104
  else if ('params' in unpackedQueryOptionsInput) {
103
105
  outParams = unpackedQueryOptionsInput.params;
106
+ uniqKey = unpackedQueryOptionsInput.uniqKey;
104
107
  }
105
108
  else {
106
109
  outParams = {};
110
+ uniqKey = unpackedQueryOptionsInput.uniqKey;
107
111
  }
108
112
  return {
109
113
  params: callFunction(outParams),
110
114
  dynamicOptions: outDynamicOptions,
115
+ uniqKey,
111
116
  };
112
- }, ({ params, dynamicOptions }) => {
117
+ }, ({ params, dynamicOptions, uniqKey }) => {
113
118
  runInAction(() => {
114
119
  _observableData.initialized = true;
115
120
  _observableData.params = params;
116
121
  _observableData.dynamicOptions = dynamicOptions;
122
+ _observableData.uniqKey = uniqKey;
117
123
  });
118
124
  }, {
119
125
  fireImmediately: true,
120
126
  });
121
127
  if (this.isLazy) {
122
- let disposeFn;
123
- onBecomeObserved(parentAtom.values_.get('_result'), () => {
124
- if (!disposeFn) {
125
- disposeFn = createParamsReaction();
126
- }
127
- });
128
- onBecomeUnobserved(parentAtom.values_.get('_result'), () => {
129
- if (disposeFn) {
130
- disposeFn();
131
- disposeFn = undefined;
132
- }
128
+ lazyObserve({
129
+ property: parentAtom.values_.get('_result'),
130
+ onStart: createParamsReaction,
131
+ onEnd: (disposeFn) => disposeFn(),
133
132
  });
134
133
  }
135
134
  else {
136
135
  this.abortController.signal.addEventListener('abort', createParamsReaction());
137
136
  }
138
137
  }
139
- this.uniqKey = uniqKey;
140
138
  this._observableData = _observableData;
141
139
  }
142
140
  get params() {
@@ -152,13 +150,13 @@ export class EndpointQuery extends Query {
152
150
  this._observableData.params = params;
153
151
  });
154
152
  return super.update({
155
- ...buildOptionsFromParams(this.endpoint, params, this.uniqKey),
153
+ ...buildOptionsFromParams(this.endpoint, params, this._observableData.uniqKey),
156
154
  ...options,
157
155
  });
158
156
  }
159
157
  else if (this._observableData) {
160
158
  return super.update({
161
- ...buildOptionsFromParams(this.endpoint, this._observableData.params, this.uniqKey),
159
+ ...buildOptionsFromParams(this.endpoint, this._observableData.params, this._observableData.uniqKey),
162
160
  ...updateParams,
163
161
  });
164
162
  }
@@ -170,7 +168,7 @@ export class EndpointQuery extends Query {
170
168
  runInAction(() => {
171
169
  this._observableData.params = params;
172
170
  });
173
- return await super.start(buildOptionsFromParams(this.endpoint, params, this.uniqKey));
171
+ return await super.start(buildOptionsFromParams(this.endpoint, params, this._observableData.uniqKey));
174
172
  }
175
173
  destroy() {
176
174
  super.destroy();