@astral/mobx-query 1.2.2 → 1.3.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.
@@ -82,6 +82,10 @@ export declare class InfiniteQuery<TResult, TError = void> implements QueryBaseA
82
82
  * @description обработчик успешного запроса, проверяет что мы достигли предела
83
83
  */
84
84
  private submitSuccess;
85
+ /**
86
+ * @description форс метод для установки данных
87
+ */
88
+ forceUpdate: (data: TResult[]) => void;
85
89
  /**
86
90
  * @description метод для обогащения параметров текущими значениями для инфинити
87
91
  */
@@ -46,6 +46,15 @@ export class InfiniteQuery {
46
46
  this.isEndReached = true;
47
47
  }
48
48
  };
49
+ /**
50
+ * @description форс метод для установки данных
51
+ */
52
+ this.forceUpdate = (data) => {
53
+ this.offset = 0;
54
+ this.isEndReached = false;
55
+ this.auxiliary.submitSuccess();
56
+ this.submitSuccess(data);
57
+ };
49
58
  /**
50
59
  * @description метод для инвалидации данных
51
60
  */
package/Query/Query.d.ts CHANGED
@@ -68,6 +68,10 @@ export declare class Query<TResult, TError = void> implements QueryBaseActions<T
68
68
  * @description обработчик успешного ответа
69
69
  */
70
70
  private submitSuccess;
71
+ /**
72
+ * @description форс метод для установки данных
73
+ */
74
+ forceUpdate: (data: TResult) => void;
71
75
  /**
72
76
  * @description метод для переиспользования синхронной логики запроса
73
77
  */
package/Query/Query.js CHANGED
@@ -38,6 +38,13 @@ export class Query {
38
38
  this.isInvalid = false;
39
39
  return resData;
40
40
  };
41
+ /**
42
+ * @description форс метод для установки данных
43
+ */
44
+ this.forceUpdate = (data) => {
45
+ this.auxiliary.submitSuccess();
46
+ this.submitSuccess(data);
47
+ };
41
48
  /**
42
49
  * @description метод для переиспользования синхронной логики запроса
43
50
  */
package/README.md CHANGED
@@ -19,6 +19,7 @@
19
19
  - [Автоматический](#3-автоматический)
20
20
  - [Инвалидация данных](#инвалидация-данных)
21
21
  - [Особенности инвалидации](#особенности-инвалидации)
22
+ - [Ручная установка данных в кэш](#ручная-установка-данных-в-кэш)
22
23
  - [InfiniteQuery](#infinitequery)
23
24
  - [isEndReached](#isendreached)
24
25
  - [Mutation](#mutation)
@@ -180,6 +181,14 @@ mobxQuery.invalidate(['key one']); // ключ не совпадает, query Н
180
181
  mobxQuery.invalidateQueries();
181
182
  ```
182
183
 
184
+ # Ручная установка данных в кэш
185
+
186
+ Для установки данных, без исполнения executor, используйте метод `forceUpdate`. При вызове все статусные флаги устанавливаются как success состояние
187
+
188
+ ```ts
189
+ query.forceUpdate('foo');
190
+ ```
191
+
183
192
  # InfiniteQuery
184
193
  Существует необходимость постепенного запроса массивов данных, в постраничном режиме. Типичный пример, инфинити скролл, когда новая пачка данных запрашивается, в момент когда пользователь докрутил список до конца.
185
194
  Для удобства, мы создали специальный `query`, который содержит дополнительный метод `fetchMore` и при вызове оного, происходит запрос с увеличенными счетчиками. Данные ответа на этот запрос, будут сконкатенированы с уже имеющимся. В случае, если количество данных меньше, чем длина страницы, будет считаться что мы дошли до конца списка.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astral/mobx-query",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "browser": "./index.js",
5
5
  "main": "./index.js",
6
6
  "dependencies": {