@astral/mobx-query 1.11.0 → 1.12.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/InfiniteQuery/InfiniteQuery.d.ts +1 -1
- package/InfiniteQuery/InfiniteQuery.js +7 -2
- package/MobxQuery/MobxQuery.d.ts +13 -1
- package/MobxQuery/MobxQuery.js +23 -18
- package/Query/Query.d.ts +1 -1
- package/Query/Query.js +7 -2
- package/Sets/InfiniteQuerySet/InfiniteQuerySet.d.ts +4 -0
- package/Sets/InfiniteQuerySet/InfiniteQuerySet.js +9 -0
- package/Sets/QuerySet/QuerySet.d.ts +4 -0
- package/Sets/QuerySet/QuerySet.js +11 -0
- package/node/InfiniteQuery/InfiniteQuery.d.ts +1 -1
- package/node/InfiniteQuery/InfiniteQuery.js +7 -2
- package/node/MobxQuery/MobxQuery.d.ts +13 -1
- package/node/MobxQuery/MobxQuery.js +23 -18
- package/node/Query/Query.d.ts +1 -1
- package/node/Query/Query.js +7 -2
- package/node/Sets/InfiniteQuerySet/InfiniteQuerySet.d.ts +4 -0
- package/node/Sets/InfiniteQuerySet/InfiniteQuerySet.js +9 -0
- package/node/Sets/QuerySet/QuerySet.d.ts +4 -0
- package/node/Sets/QuerySet/QuerySet.js +11 -0
- package/package.json +1 -1
|
@@ -97,7 +97,7 @@ export declare class InfiniteQuery<TResult, TError = void, TIsBackground extends
|
|
|
97
97
|
/**
|
|
98
98
|
* Форс метод для установки данных
|
|
99
99
|
*/
|
|
100
|
-
forceUpdate: (
|
|
100
|
+
forceUpdate: (param: TResult[] | ((data?: TResult[]) => TResult[])) => void;
|
|
101
101
|
/**
|
|
102
102
|
* Метод для обогащения параметров текущими значениями для инфинити
|
|
103
103
|
*/
|
|
@@ -45,9 +45,14 @@ export class InfiniteQuery extends QueryContainer {
|
|
|
45
45
|
/**
|
|
46
46
|
* Форс метод для установки данных
|
|
47
47
|
*/
|
|
48
|
-
this.forceUpdate = (
|
|
48
|
+
this.forceUpdate = (param) => {
|
|
49
49
|
this.auxiliary.submitSuccess();
|
|
50
|
-
|
|
50
|
+
if (typeof param === 'function') {
|
|
51
|
+
this.submitSuccess(param(this.storage.data));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.submitSuccess(param);
|
|
55
|
+
}
|
|
51
56
|
};
|
|
52
57
|
/**
|
|
53
58
|
* Метод для инвалидации данных
|
package/MobxQuery/MobxQuery.d.ts
CHANGED
|
@@ -40,12 +40,16 @@ export type CreateInfiniteQueryParams<TResult, TError, TIsBackground extends boo
|
|
|
40
40
|
isBackground?: TIsBackground;
|
|
41
41
|
};
|
|
42
42
|
export type CreateMutationParams<TResult, TError> = MutationParams<TResult, TError>;
|
|
43
|
+
/**
|
|
44
|
+
* Внутриний тип кешируемого стора
|
|
45
|
+
*/
|
|
46
|
+
type CachedQuery<TResult, TError, TIsBackground extends boolean> = Query<TResult, TError, TIsBackground> | InfiniteQuery<TResult, TError, TIsBackground>;
|
|
43
47
|
/**
|
|
44
48
|
* Стратегия инвалидации кэша
|
|
45
49
|
* @property 'partial-match' - Проверяет наличие хотя бы одной части ключа в кэше
|
|
46
50
|
* @property 'chain-match' - Проверяет наличие полной связки ключей в кэше
|
|
47
51
|
*/
|
|
48
|
-
type InvalidateStrategy = 'partial-match' | 'chain-match';
|
|
52
|
+
export type InvalidateStrategy = 'partial-match' | 'chain-match';
|
|
49
53
|
/**
|
|
50
54
|
* Сервис, позволяющий кэшировать данные.
|
|
51
55
|
*/
|
|
@@ -102,6 +106,14 @@ export declare class MobxQuery<TDefaultError = void> {
|
|
|
102
106
|
* mobxQuery.invalidate(['users', '1'], 'chain-match'); // Инвалидирует только query с точным набором ключей ['users', '1']
|
|
103
107
|
*/
|
|
104
108
|
invalidate: (invalidatedKeys: CacheKey[], strategy?: InvalidateStrategy) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Метод для получения массива хешей ключей на основании ключей и стратегии
|
|
111
|
+
*/
|
|
112
|
+
private getExistsKeyHashes;
|
|
113
|
+
/**
|
|
114
|
+
* метод для получения массива существующий квери на основании ключей и стратегии
|
|
115
|
+
*/
|
|
116
|
+
getExistsQueries: <TQuery = CachedQuery<unknown, unknown, false>>(keys: CacheKey[], strategy?: InvalidateStrategy) => TQuery[];
|
|
105
117
|
private submitValidity;
|
|
106
118
|
/**
|
|
107
119
|
* Метод инвалидации всех query
|
package/MobxQuery/MobxQuery.js
CHANGED
|
@@ -54,23 +54,28 @@ export class MobxQuery {
|
|
|
54
54
|
* mobxQuery.invalidate(['users', '1'], 'chain-match'); // Инвалидирует только query с точным набором ключей ['users', '1']
|
|
55
55
|
*/
|
|
56
56
|
this.invalidate = (invalidatedKeys, strategy = 'partial-match') => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const query = this.queriesMap.get(keyHash);
|
|
65
|
-
if (query) {
|
|
66
|
-
query.invalidate();
|
|
67
|
-
// Конвертируем инвалидированный квери в слабый,
|
|
68
|
-
// чтобы сборщик мусора мог удалить неиспользуемые квери
|
|
69
|
-
this.queriesMap.convertToWeak(keyHash);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
57
|
+
this.getExistsKeyHashes(invalidatedKeys, strategy).forEach(({ keyHash }) => {
|
|
58
|
+
var _a;
|
|
59
|
+
(_a = this.queriesMap.get(keyHash)) === null || _a === void 0 ? void 0 : _a.invalidate();
|
|
60
|
+
// Конвертируем инвалидированный квери в слабый,
|
|
61
|
+
// чтобы сборщик мусора мог удалить неиспользуемые квери
|
|
62
|
+
this.queriesMap.convertToWeak(keyHash);
|
|
63
|
+
});
|
|
73
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Метод для получения массива хешей ключей на основании ключей и стратегии
|
|
67
|
+
*/
|
|
68
|
+
this.getExistsKeyHashes = (keys, strategy = 'partial-match') => [...this.keys.keys()]
|
|
69
|
+
.map((keyHash) => ({ keyHash, queryKeys: this.keys.get(keyHash) }))
|
|
70
|
+
.filter(({ queryKeys, keyHash }) =>
|
|
71
|
+
// Проверяем, есть ли пересечение между закешированными ключами и набором ключей для инвалидации
|
|
72
|
+
queryKeys &&
|
|
73
|
+
this.checkTouchedElement(keys, queryKeys, strategy) &&
|
|
74
|
+
this.queriesMap.has(keyHash));
|
|
75
|
+
/**
|
|
76
|
+
* метод для получения массива существующий квери на основании ключей и стратегии
|
|
77
|
+
*/
|
|
78
|
+
this.getExistsQueries = (keys, strategy = 'partial-match') => this.getExistsKeyHashes(keys, strategy).map(({ keyHash }) => this.queriesMap.get(keyHash));
|
|
74
79
|
// Метод для подтверждения того, что квери успешно получил валидные данные
|
|
75
80
|
this.submitValidity = (keyHash) => {
|
|
76
81
|
// конвертируем квери в сильный,
|
|
@@ -139,10 +144,10 @@ export class MobxQuery {
|
|
|
139
144
|
const queryKey = [...rootKey, { fetchPolicy, date, isBackground, type }];
|
|
140
145
|
const queryKeyHash = this.serialize(queryKey);
|
|
141
146
|
const dataKeyHash = this.serialize([...rootKey, { type }]);
|
|
142
|
-
const statusKeyHash = this.serialize([...rootKey, { type }]);
|
|
147
|
+
const statusKeyHash = this.serialize([...rootKey, { type, date }]);
|
|
143
148
|
const backgroundStatusKeyHash = this.serialize([
|
|
144
149
|
...rootKey,
|
|
145
|
-
{ type, isBackground },
|
|
150
|
+
{ type, isBackground, date },
|
|
146
151
|
]);
|
|
147
152
|
return {
|
|
148
153
|
queryKey,
|
package/Query/Query.d.ts
CHANGED
|
@@ -83,7 +83,7 @@ export declare class Query<TResult, TError = void, TIsBackground extends boolean
|
|
|
83
83
|
/**
|
|
84
84
|
* Форс метод для установки данных
|
|
85
85
|
*/
|
|
86
|
-
forceUpdate: (
|
|
86
|
+
forceUpdate: (param: TResult | ((data?: TResult) => TResult)) => void;
|
|
87
87
|
/**
|
|
88
88
|
* Метод для переиспользования синхронной логики запроса
|
|
89
89
|
*/
|
package/Query/Query.js
CHANGED
|
@@ -42,9 +42,14 @@ export class Query extends QueryContainer {
|
|
|
42
42
|
/**
|
|
43
43
|
* Форс метод для установки данных
|
|
44
44
|
*/
|
|
45
|
-
this.forceUpdate = (
|
|
45
|
+
this.forceUpdate = (param) => {
|
|
46
46
|
this.auxiliary.submitSuccess();
|
|
47
|
-
|
|
47
|
+
if (typeof param === 'function') {
|
|
48
|
+
this.submitSuccess(param(this.storage.data));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.submitSuccess(param);
|
|
52
|
+
}
|
|
48
53
|
};
|
|
49
54
|
/**
|
|
50
55
|
* Метод для переиспользования синхронной логики запроса
|
|
@@ -57,4 +57,8 @@ export declare class InfiniteQuerySet<TParams extends any[], TResponse, TDefault
|
|
|
57
57
|
*/
|
|
58
58
|
invalidate: (...params: DeepPartial<TParams>) => void;
|
|
59
59
|
private configureQuery;
|
|
60
|
+
/**
|
|
61
|
+
* Форс метод для установки данных во все зависимые квери
|
|
62
|
+
*/
|
|
63
|
+
forceUpdate: (update: (data?: TResponse[]) => TResponse[], ...params: DeepPartial<TParams>) => void;
|
|
60
64
|
}
|
|
@@ -66,6 +66,15 @@ export class InfiniteQuerySet {
|
|
|
66
66
|
execute,
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* Форс метод для установки данных во все зависимые квери
|
|
71
|
+
*/
|
|
72
|
+
this.forceUpdate = (update, ...params) => {
|
|
73
|
+
const { keys } = this.configureQuery(...params);
|
|
74
|
+
this._cache
|
|
75
|
+
.getExistsQueries(keys, 'chain-match')
|
|
76
|
+
.forEach((query) => query.forceUpdate(update));
|
|
77
|
+
};
|
|
69
78
|
this.baseKey = (_a = config === null || config === void 0 ? void 0 : config.name) !== null && _a !== void 0 ? _a : generateQuerySetBaseKey(_queryConfigurator);
|
|
70
79
|
}
|
|
71
80
|
}
|
|
@@ -61,4 +61,8 @@ export declare class QuerySet<TParams extends any[], TResponse, TDefaultError =
|
|
|
61
61
|
*/
|
|
62
62
|
invalidate: (...params: DeepPartial<TParams>) => void;
|
|
63
63
|
private configureQuery;
|
|
64
|
+
/**
|
|
65
|
+
* Форс метод для установки данных во все зависимые квери
|
|
66
|
+
*/
|
|
67
|
+
forceUpdate: (update: (data?: TResponse) => TResponse, ...params: DeepPartial<TParams>) => void;
|
|
64
68
|
}
|
|
@@ -67,6 +67,17 @@ export class QuerySet {
|
|
|
67
67
|
execute,
|
|
68
68
|
};
|
|
69
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Форс метод для установки данных во все зависимые квери
|
|
72
|
+
*/
|
|
73
|
+
this.forceUpdate = (update, ...params) => {
|
|
74
|
+
const { keys } = this.configureQuery(...params);
|
|
75
|
+
this._cache
|
|
76
|
+
.getExistsQueries(keys, 'chain-match')
|
|
77
|
+
.forEach((query) => {
|
|
78
|
+
query.forceUpdate(update);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
70
81
|
this.baseKey = (_a = config === null || config === void 0 ? void 0 : config.name) !== null && _a !== void 0 ? _a : generateQuerySetBaseKey(_queryConfigurator);
|
|
71
82
|
}
|
|
72
83
|
}
|
|
@@ -97,7 +97,7 @@ export declare class InfiniteQuery<TResult, TError = void, TIsBackground extends
|
|
|
97
97
|
/**
|
|
98
98
|
* Форс метод для установки данных
|
|
99
99
|
*/
|
|
100
|
-
forceUpdate: (
|
|
100
|
+
forceUpdate: (param: TResult[] | ((data?: TResult[]) => TResult[])) => void;
|
|
101
101
|
/**
|
|
102
102
|
* Метод для обогащения параметров текущими значениями для инфинити
|
|
103
103
|
*/
|
|
@@ -48,9 +48,14 @@ class InfiniteQuery extends QueryContainer_1.QueryContainer {
|
|
|
48
48
|
/**
|
|
49
49
|
* Форс метод для установки данных
|
|
50
50
|
*/
|
|
51
|
-
this.forceUpdate = (
|
|
51
|
+
this.forceUpdate = (param) => {
|
|
52
52
|
this.auxiliary.submitSuccess();
|
|
53
|
-
|
|
53
|
+
if (typeof param === 'function') {
|
|
54
|
+
this.submitSuccess(param(this.storage.data));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.submitSuccess(param);
|
|
58
|
+
}
|
|
54
59
|
};
|
|
55
60
|
/**
|
|
56
61
|
* Метод для инвалидации данных
|
|
@@ -40,12 +40,16 @@ export type CreateInfiniteQueryParams<TResult, TError, TIsBackground extends boo
|
|
|
40
40
|
isBackground?: TIsBackground;
|
|
41
41
|
};
|
|
42
42
|
export type CreateMutationParams<TResult, TError> = MutationParams<TResult, TError>;
|
|
43
|
+
/**
|
|
44
|
+
* Внутриний тип кешируемого стора
|
|
45
|
+
*/
|
|
46
|
+
type CachedQuery<TResult, TError, TIsBackground extends boolean> = Query<TResult, TError, TIsBackground> | InfiniteQuery<TResult, TError, TIsBackground>;
|
|
43
47
|
/**
|
|
44
48
|
* Стратегия инвалидации кэша
|
|
45
49
|
* @property 'partial-match' - Проверяет наличие хотя бы одной части ключа в кэше
|
|
46
50
|
* @property 'chain-match' - Проверяет наличие полной связки ключей в кэше
|
|
47
51
|
*/
|
|
48
|
-
type InvalidateStrategy = 'partial-match' | 'chain-match';
|
|
52
|
+
export type InvalidateStrategy = 'partial-match' | 'chain-match';
|
|
49
53
|
/**
|
|
50
54
|
* Сервис, позволяющий кэшировать данные.
|
|
51
55
|
*/
|
|
@@ -102,6 +106,14 @@ export declare class MobxQuery<TDefaultError = void> {
|
|
|
102
106
|
* mobxQuery.invalidate(['users', '1'], 'chain-match'); // Инвалидирует только query с точным набором ключей ['users', '1']
|
|
103
107
|
*/
|
|
104
108
|
invalidate: (invalidatedKeys: CacheKey[], strategy?: InvalidateStrategy) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Метод для получения массива хешей ключей на основании ключей и стратегии
|
|
111
|
+
*/
|
|
112
|
+
private getExistsKeyHashes;
|
|
113
|
+
/**
|
|
114
|
+
* метод для получения массива существующий квери на основании ключей и стратегии
|
|
115
|
+
*/
|
|
116
|
+
getExistsQueries: <TQuery = CachedQuery<unknown, unknown, false>>(keys: CacheKey[], strategy?: InvalidateStrategy) => TQuery[];
|
|
105
117
|
private submitValidity;
|
|
106
118
|
/**
|
|
107
119
|
* Метод инвалидации всех query
|
|
@@ -57,23 +57,28 @@ class MobxQuery {
|
|
|
57
57
|
* mobxQuery.invalidate(['users', '1'], 'chain-match'); // Инвалидирует только query с точным набором ключей ['users', '1']
|
|
58
58
|
*/
|
|
59
59
|
this.invalidate = (invalidatedKeys, strategy = 'partial-match') => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const query = this.queriesMap.get(keyHash);
|
|
68
|
-
if (query) {
|
|
69
|
-
query.invalidate();
|
|
70
|
-
// Конвертируем инвалидированный квери в слабый,
|
|
71
|
-
// чтобы сборщик мусора мог удалить неиспользуемые квери
|
|
72
|
-
this.queriesMap.convertToWeak(keyHash);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
60
|
+
this.getExistsKeyHashes(invalidatedKeys, strategy).forEach(({ keyHash }) => {
|
|
61
|
+
var _a;
|
|
62
|
+
(_a = this.queriesMap.get(keyHash)) === null || _a === void 0 ? void 0 : _a.invalidate();
|
|
63
|
+
// Конвертируем инвалидированный квери в слабый,
|
|
64
|
+
// чтобы сборщик мусора мог удалить неиспользуемые квери
|
|
65
|
+
this.queriesMap.convertToWeak(keyHash);
|
|
66
|
+
});
|
|
76
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* Метод для получения массива хешей ключей на основании ключей и стратегии
|
|
70
|
+
*/
|
|
71
|
+
this.getExistsKeyHashes = (keys, strategy = 'partial-match') => [...this.keys.keys()]
|
|
72
|
+
.map((keyHash) => ({ keyHash, queryKeys: this.keys.get(keyHash) }))
|
|
73
|
+
.filter(({ queryKeys, keyHash }) =>
|
|
74
|
+
// Проверяем, есть ли пересечение между закешированными ключами и набором ключей для инвалидации
|
|
75
|
+
queryKeys &&
|
|
76
|
+
this.checkTouchedElement(keys, queryKeys, strategy) &&
|
|
77
|
+
this.queriesMap.has(keyHash));
|
|
78
|
+
/**
|
|
79
|
+
* метод для получения массива существующий квери на основании ключей и стратегии
|
|
80
|
+
*/
|
|
81
|
+
this.getExistsQueries = (keys, strategy = 'partial-match') => this.getExistsKeyHashes(keys, strategy).map(({ keyHash }) => this.queriesMap.get(keyHash));
|
|
77
82
|
// Метод для подтверждения того, что квери успешно получил валидные данные
|
|
78
83
|
this.submitValidity = (keyHash) => {
|
|
79
84
|
// конвертируем квери в сильный,
|
|
@@ -142,10 +147,10 @@ class MobxQuery {
|
|
|
142
147
|
const queryKey = [...rootKey, { fetchPolicy, date, isBackground, type }];
|
|
143
148
|
const queryKeyHash = this.serialize(queryKey);
|
|
144
149
|
const dataKeyHash = this.serialize([...rootKey, { type }]);
|
|
145
|
-
const statusKeyHash = this.serialize([...rootKey, { type }]);
|
|
150
|
+
const statusKeyHash = this.serialize([...rootKey, { type, date }]);
|
|
146
151
|
const backgroundStatusKeyHash = this.serialize([
|
|
147
152
|
...rootKey,
|
|
148
|
-
{ type, isBackground },
|
|
153
|
+
{ type, isBackground, date },
|
|
149
154
|
]);
|
|
150
155
|
return {
|
|
151
156
|
queryKey,
|
package/node/Query/Query.d.ts
CHANGED
|
@@ -83,7 +83,7 @@ export declare class Query<TResult, TError = void, TIsBackground extends boolean
|
|
|
83
83
|
/**
|
|
84
84
|
* Форс метод для установки данных
|
|
85
85
|
*/
|
|
86
|
-
forceUpdate: (
|
|
86
|
+
forceUpdate: (param: TResult | ((data?: TResult) => TResult)) => void;
|
|
87
87
|
/**
|
|
88
88
|
* Метод для переиспользования синхронной логики запроса
|
|
89
89
|
*/
|
package/node/Query/Query.js
CHANGED
|
@@ -45,9 +45,14 @@ class Query extends QueryContainer_1.QueryContainer {
|
|
|
45
45
|
/**
|
|
46
46
|
* Форс метод для установки данных
|
|
47
47
|
*/
|
|
48
|
-
this.forceUpdate = (
|
|
48
|
+
this.forceUpdate = (param) => {
|
|
49
49
|
this.auxiliary.submitSuccess();
|
|
50
|
-
|
|
50
|
+
if (typeof param === 'function') {
|
|
51
|
+
this.submitSuccess(param(this.storage.data));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.submitSuccess(param);
|
|
55
|
+
}
|
|
51
56
|
};
|
|
52
57
|
/**
|
|
53
58
|
* Метод для переиспользования синхронной логики запроса
|
|
@@ -57,4 +57,8 @@ export declare class InfiniteQuerySet<TParams extends any[], TResponse, TDefault
|
|
|
57
57
|
*/
|
|
58
58
|
invalidate: (...params: DeepPartial<TParams>) => void;
|
|
59
59
|
private configureQuery;
|
|
60
|
+
/**
|
|
61
|
+
* Форс метод для установки данных во все зависимые квери
|
|
62
|
+
*/
|
|
63
|
+
forceUpdate: (update: (data?: TResponse[]) => TResponse[], ...params: DeepPartial<TParams>) => void;
|
|
60
64
|
}
|
|
@@ -69,6 +69,15 @@ class InfiniteQuerySet {
|
|
|
69
69
|
execute,
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* Форс метод для установки данных во все зависимые квери
|
|
74
|
+
*/
|
|
75
|
+
this.forceUpdate = (update, ...params) => {
|
|
76
|
+
const { keys } = this.configureQuery(...params);
|
|
77
|
+
this._cache
|
|
78
|
+
.getExistsQueries(keys, 'chain-match')
|
|
79
|
+
.forEach((query) => query.forceUpdate(update));
|
|
80
|
+
};
|
|
72
81
|
this.baseKey = (_a = config === null || config === void 0 ? void 0 : config.name) !== null && _a !== void 0 ? _a : (0, utils_1.generateQuerySetBaseKey)(_queryConfigurator);
|
|
73
82
|
}
|
|
74
83
|
}
|
|
@@ -61,4 +61,8 @@ export declare class QuerySet<TParams extends any[], TResponse, TDefaultError =
|
|
|
61
61
|
*/
|
|
62
62
|
invalidate: (...params: DeepPartial<TParams>) => void;
|
|
63
63
|
private configureQuery;
|
|
64
|
+
/**
|
|
65
|
+
* Форс метод для установки данных во все зависимые квери
|
|
66
|
+
*/
|
|
67
|
+
forceUpdate: (update: (data?: TResponse) => TResponse, ...params: DeepPartial<TParams>) => void;
|
|
64
68
|
}
|
|
@@ -70,6 +70,17 @@ class QuerySet {
|
|
|
70
70
|
execute,
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Форс метод для установки данных во все зависимые квери
|
|
75
|
+
*/
|
|
76
|
+
this.forceUpdate = (update, ...params) => {
|
|
77
|
+
const { keys } = this.configureQuery(...params);
|
|
78
|
+
this._cache
|
|
79
|
+
.getExistsQueries(keys, 'chain-match')
|
|
80
|
+
.forEach((query) => {
|
|
81
|
+
query.forceUpdate(update);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
73
84
|
this.baseKey = (_a = config === null || config === void 0 ? void 0 : config.name) !== null && _a !== void 0 ? _a : (0, utils_1.generateQuerySetBaseKey)(_queryConfigurator);
|
|
74
85
|
}
|
|
75
86
|
}
|