@astral/mobx-query 1.8.0 → 1.9.0
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/MobxQuery/MobxQuery.d.ts +44 -0
- package/MobxQuery/MobxQuery.js +48 -0
- package/README.md +1048 -287
- package/Sets/InfiniteQuerySet/InfiniteQuerySet.d.ts +60 -0
- package/Sets/InfiniteQuerySet/InfiniteQuerySet.js +71 -0
- package/Sets/InfiniteQuerySet/index.d.ts +1 -0
- package/Sets/InfiniteQuerySet/index.js +1 -0
- package/Sets/MutationSet/MutationSet.d.ts +32 -0
- package/Sets/MutationSet/MutationSet.js +31 -0
- package/Sets/MutationSet/index.d.ts +1 -0
- package/Sets/MutationSet/index.js +1 -0
- package/Sets/QuerySet/QuerySet.d.ts +64 -0
- package/Sets/QuerySet/QuerySet.js +72 -0
- package/Sets/QuerySet/index.d.ts +1 -0
- package/Sets/QuerySet/index.js +1 -0
- package/Sets/index.d.ts +3 -0
- package/Sets/index.js +3 -0
- package/Sets/utils/generateQuerySetBaseKey/generateQuerySetBaseKey.d.ts +4 -0
- package/Sets/utils/generateQuerySetBaseKey/generateQuerySetBaseKey.js +5 -0
- package/Sets/utils/generateQuerySetBaseKey/index.d.ts +1 -0
- package/Sets/utils/generateQuerySetBaseKey/index.js +1 -0
- package/Sets/utils/generateQuerySetKeys/generateQuerySetKeys.d.ts +9 -0
- package/Sets/utils/generateQuerySetKeys/generateQuerySetKeys.js +20 -0
- package/Sets/utils/generateQuerySetKeys/index.d.ts +1 -0
- package/Sets/utils/generateQuerySetKeys/index.js +1 -0
- package/Sets/utils/index.d.ts +2 -0
- package/Sets/utils/index.js +2 -0
- package/index.d.ts +2 -1
- package/index.js +1 -0
- package/node/AdaptableMap/AdaptableMap.d.ts +29 -0
- package/node/AdaptableMap/AdaptableMap.js +81 -0
- package/node/AdaptableMap/index.d.ts +1 -0
- package/node/AdaptableMap/index.js +17 -0
- package/node/AuxiliaryQuery/AuxiliaryQuery.d.ts +55 -0
- package/node/AuxiliaryQuery/AuxiliaryQuery.js +115 -0
- package/node/AuxiliaryQuery/index.d.ts +1 -0
- package/node/AuxiliaryQuery/index.js +17 -0
- package/node/DataStorage/DataStorage.d.ts +33 -0
- package/node/DataStorage/DataStorage.js +51 -0
- package/node/DataStorage/index.d.ts +1 -0
- package/node/DataStorage/index.js +17 -0
- package/node/InfiniteQuery/InfiniteQuery.d.ts +135 -0
- package/node/InfiniteQuery/InfiniteQuery.js +169 -0
- package/node/InfiniteQuery/index.d.ts +1 -0
- package/node/InfiniteQuery/index.js +17 -0
- package/node/MobxQuery/MobxQuery.d.ts +176 -0
- package/node/MobxQuery/MobxQuery.js +225 -0
- package/node/MobxQuery/index.d.ts +1 -0
- package/node/MobxQuery/index.js +17 -0
- package/node/Mutation/Mutation.d.ts +34 -0
- package/node/Mutation/Mutation.js +47 -0
- package/node/Mutation/index.d.ts +1 -0
- package/node/Mutation/index.js +17 -0
- package/node/Query/Query.d.ts +103 -0
- package/node/Query/Query.js +113 -0
- package/node/Query/index.d.ts +1 -0
- package/node/Query/index.js +17 -0
- package/node/QueryContainer/QueryContainer.d.ts +61 -0
- package/node/QueryContainer/QueryContainer.js +83 -0
- package/node/QueryContainer/index.d.ts +1 -0
- package/node/QueryContainer/index.js +17 -0
- package/node/Sets/InfiniteQuerySet/InfiniteQuerySet.d.ts +60 -0
- package/node/Sets/InfiniteQuerySet/InfiniteQuerySet.js +75 -0
- package/node/Sets/InfiniteQuerySet/index.d.ts +1 -0
- package/node/Sets/InfiniteQuerySet/index.js +17 -0
- package/node/Sets/MutationSet/MutationSet.d.ts +32 -0
- package/node/Sets/MutationSet/MutationSet.js +35 -0
- package/node/Sets/MutationSet/index.d.ts +1 -0
- package/node/Sets/MutationSet/index.js +17 -0
- package/node/Sets/QuerySet/QuerySet.d.ts +64 -0
- package/node/Sets/QuerySet/QuerySet.js +76 -0
- package/node/Sets/QuerySet/index.d.ts +1 -0
- package/node/Sets/QuerySet/index.js +17 -0
- package/node/Sets/index.d.ts +3 -0
- package/node/Sets/index.js +19 -0
- package/node/Sets/utils/generateQuerySetBaseKey/generateQuerySetBaseKey.d.ts +4 -0
- package/node/Sets/utils/generateQuerySetBaseKey/generateQuerySetBaseKey.js +12 -0
- package/node/Sets/utils/generateQuerySetBaseKey/index.d.ts +1 -0
- package/node/Sets/utils/generateQuerySetBaseKey/index.js +17 -0
- package/node/Sets/utils/generateQuerySetKeys/generateQuerySetKeys.d.ts +9 -0
- package/node/Sets/utils/generateQuerySetKeys/generateQuerySetKeys.js +27 -0
- package/node/Sets/utils/generateQuerySetKeys/index.d.ts +1 -0
- package/node/Sets/utils/generateQuerySetKeys/index.js +17 -0
- package/node/Sets/utils/index.d.ts +2 -0
- package/node/Sets/utils/index.js +18 -0
- package/node/StatusStorage/StatusStorage.d.ts +24 -0
- package/node/StatusStorage/StatusStorage.js +41 -0
- package/node/StatusStorage/index.d.ts +1 -0
- package/node/StatusStorage/index.js +17 -0
- package/node/StorageFactory/StorageFactory.d.ts +9 -0
- package/node/StorageFactory/StorageFactory.js +23 -0
- package/node/StorageFactory/index.d.ts +1 -0
- package/node/StorageFactory/index.js +17 -0
- package/node/index.d.ts +6 -0
- package/node/index.js +11 -0
- package/node/types.d.ts +55 -0
- package/node/types.js +2 -0
- package/package.json +11 -4
package/MobxQuery/MobxQuery.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Query, type QueryExecutor, type QueryParams } from '../Query';
|
|
|
2
2
|
import { type InfiniteExecutor, InfiniteQuery, type InfiniteQueryParams } from '../InfiniteQuery';
|
|
3
3
|
import { Mutation, type MutationExecutor, type MutationParams } from '../Mutation';
|
|
4
4
|
import type { CacheKey, FetchPolicy } from '../types';
|
|
5
|
+
import { InfiniteQuerySet, type InfiniteQuerySetConfig, type InfiniteQuerySetConfigurator, MutationSet, QuerySet, type QuerySetConfig, type QuerySetConfigurator } from '../Sets';
|
|
5
6
|
/**
|
|
6
7
|
* Стандартный обработчик ошибки запроса,
|
|
7
8
|
* будет вызван, если при вызове sync не был передан отдельный onError параметр
|
|
@@ -128,5 +129,48 @@ export declare class MobxQuery<TDefaultError = void> {
|
|
|
128
129
|
* Метод создания мутации, не кешируется
|
|
129
130
|
*/
|
|
130
131
|
createMutation: <TResult, TError = TDefaultError, TExecutorParams = void>(executor: MutationExecutor<TResult, TExecutorParams>, params?: CreateMutationParams<TResult, TError>) => Mutation<TResult, TError, TExecutorParams>;
|
|
132
|
+
/**
|
|
133
|
+
* Создает набор queries под одним ключем
|
|
134
|
+
* @param configurator - Функция конфигурации набора запросов. Она должна возвращать объект с полями:
|
|
135
|
+
* - keys (необязательно): массив ключей для кеширования;
|
|
136
|
+
* - execute: функция, которая возвращает промис с результатом выполнения запроса.
|
|
137
|
+
* @example
|
|
138
|
+
* const docQuerySet = mobxQuery.createQuerySet((id: string, count?: number) => ({
|
|
139
|
+
* execute: () => docEndpoint.getDoc(id),
|
|
140
|
+
* }));
|
|
141
|
+
*
|
|
142
|
+
* const docQuery = docQuerySet.create();
|
|
143
|
+
*
|
|
144
|
+
* docQuery.data // { data: [id, count] }
|
|
145
|
+
*/
|
|
146
|
+
createQuerySet: <TParams extends any[], TResponse>(configurator: QuerySetConfigurator<TParams, TResponse>, config?: QuerySetConfig) => QuerySet<TParams, TResponse, TDefaultError>;
|
|
147
|
+
/**
|
|
148
|
+
* Создает набор infinite queries под одним ключем
|
|
149
|
+
* @param configurator - Функция конфигурации набора запросов. Она должна возвращать объект с полями:
|
|
150
|
+
* - keys (необязательно): массив ключей для кеширования;
|
|
151
|
+
* - execute: функция, которая возвращает промис с результатом выполнения запроса.
|
|
152
|
+
* @example
|
|
153
|
+
* const docListInfiniteQuerySet = mobxQuery.createInfiniteQuerySet((id: string, count?: number) => ({
|
|
154
|
+
* execute: ({ offset, count }) => docEndpoint.getDocList(id, offset, count),
|
|
155
|
+
* }));
|
|
156
|
+
*
|
|
157
|
+
* const docListInfiniteQuery = docListInfiniteQuerySet.create();
|
|
158
|
+
*
|
|
159
|
+
* docListInfiniteQuery.data
|
|
160
|
+
*/
|
|
161
|
+
createInfiniteQuerySet: <TParams extends any[], TResponse>(configurator: InfiniteQuerySetConfigurator<TParams, TResponse>, config?: InfiniteQuerySetConfig) => InfiniteQuerySet<TParams, TResponse, TDefaultError>;
|
|
162
|
+
/**
|
|
163
|
+
* Создает набор мутаций для единого интерфейса с query sets
|
|
164
|
+
* @param executor - Функция-исполнитель мутации. Она должна возвращать промис с результатом выполнения мутации.
|
|
165
|
+
* @example
|
|
166
|
+
* const editDocMutationSet = mobxQuery.createMutationSet((params: DocsEndpointsDTO.EditDocInput) => {
|
|
167
|
+
* return docsEndpoint.editDoc(params);
|
|
168
|
+
* });
|
|
169
|
+
*
|
|
170
|
+
* const editDocMutation = editDocMutationSet.create();
|
|
171
|
+
*
|
|
172
|
+
* editDocMutation.sync({ params: { id: 'docId', content: 'Новое содержимое' } });
|
|
173
|
+
*/
|
|
174
|
+
createMutationSet: <TResponse, TExecutorParams = void>(executor: MutationExecutor<TResponse, TExecutorParams>) => MutationSet<TResponse, TExecutorParams, TDefaultError>;
|
|
131
175
|
}
|
|
132
176
|
export {};
|
package/MobxQuery/MobxQuery.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Mutation, } from '../Mutation';
|
|
|
4
4
|
import { DataStorageFactory } from '../DataStorage';
|
|
5
5
|
import { StatusStorageFactory } from '../StatusStorage';
|
|
6
6
|
import { AdaptableMap } from '../AdaptableMap';
|
|
7
|
+
import { InfiniteQuerySet, MutationSet, QuerySet, } from '../Sets';
|
|
7
8
|
/**
|
|
8
9
|
* Сервис, позволяющий кэшировать данные.
|
|
9
10
|
*/
|
|
@@ -166,6 +167,53 @@ export class MobxQuery {
|
|
|
166
167
|
* Метод создания мутации, не кешируется
|
|
167
168
|
*/
|
|
168
169
|
this.createMutation = (executor, params) => new Mutation(executor, Object.assign(Object.assign({}, params), { onError: (params === null || params === void 0 ? void 0 : params.onError) || this.defaultErrorHandler }));
|
|
170
|
+
/**
|
|
171
|
+
* Создает набор queries под одним ключем
|
|
172
|
+
* @param configurator - Функция конфигурации набора запросов. Она должна возвращать объект с полями:
|
|
173
|
+
* - keys (необязательно): массив ключей для кеширования;
|
|
174
|
+
* - execute: функция, которая возвращает промис с результатом выполнения запроса.
|
|
175
|
+
* @example
|
|
176
|
+
* const docQuerySet = mobxQuery.createQuerySet((id: string, count?: number) => ({
|
|
177
|
+
* execute: () => docEndpoint.getDoc(id),
|
|
178
|
+
* }));
|
|
179
|
+
*
|
|
180
|
+
* const docQuery = docQuerySet.create();
|
|
181
|
+
*
|
|
182
|
+
* docQuery.data // { data: [id, count] }
|
|
183
|
+
*/
|
|
184
|
+
// any нужен для вывода типов
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
this.createQuerySet = (configurator, config) => new QuerySet(this, configurator, config);
|
|
187
|
+
/**
|
|
188
|
+
* Создает набор infinite queries под одним ключем
|
|
189
|
+
* @param configurator - Функция конфигурации набора запросов. Она должна возвращать объект с полями:
|
|
190
|
+
* - keys (необязательно): массив ключей для кеширования;
|
|
191
|
+
* - execute: функция, которая возвращает промис с результатом выполнения запроса.
|
|
192
|
+
* @example
|
|
193
|
+
* const docListInfiniteQuerySet = mobxQuery.createInfiniteQuerySet((id: string, count?: number) => ({
|
|
194
|
+
* execute: ({ offset, count }) => docEndpoint.getDocList(id, offset, count),
|
|
195
|
+
* }));
|
|
196
|
+
*
|
|
197
|
+
* const docListInfiniteQuery = docListInfiniteQuerySet.create();
|
|
198
|
+
*
|
|
199
|
+
* docListInfiniteQuery.data
|
|
200
|
+
*/
|
|
201
|
+
// any нужен для вывода типов
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
203
|
+
this.createInfiniteQuerySet = (configurator, config) => new InfiniteQuerySet(this, configurator, config);
|
|
204
|
+
/**
|
|
205
|
+
* Создает набор мутаций для единого интерфейса с query sets
|
|
206
|
+
* @param executor - Функция-исполнитель мутации. Она должна возвращать промис с результатом выполнения мутации.
|
|
207
|
+
* @example
|
|
208
|
+
* const editDocMutationSet = mobxQuery.createMutationSet((params: DocsEndpointsDTO.EditDocInput) => {
|
|
209
|
+
* return docsEndpoint.editDoc(params);
|
|
210
|
+
* });
|
|
211
|
+
*
|
|
212
|
+
* const editDocMutation = editDocMutationSet.create();
|
|
213
|
+
*
|
|
214
|
+
* editDocMutation.sync({ params: { id: 'docId', content: 'Новое содержимое' } });
|
|
215
|
+
*/
|
|
216
|
+
this.createMutationSet = (executor) => new MutationSet(this, executor);
|
|
169
217
|
this.defaultErrorHandler = onError;
|
|
170
218
|
this.defaultFetchPolicy = fetchPolicy;
|
|
171
219
|
this.defaultEnabledAutoFetch = enabledAutoFetch;
|