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.
|
|
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.
|
|
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.
|
|
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;
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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();
|