@keplr-wallet/stores 0.12.274 → 0.12.276-rc.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.
@@ -1,3 +1,4 @@
1
1
  export * from "./query";
2
+ export * from "./post-query";
2
3
  export * from "./json-rpc";
3
4
  export * from "./context";
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./query"), exports);
18
+ __exportStar(require("./post-query"), exports);
18
19
  __exportStar(require("./json-rpc"), exports);
19
20
  __exportStar(require("./context"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,+CAA6B;AAC7B,6CAA2B;AAC3B,4CAA0B"}
@@ -0,0 +1,24 @@
1
+ import { ObservableQuery, QueryOptions } from "./query";
2
+ import { QuerySharedContext } from "./context";
3
+ import { HasMapStore } from "../map";
4
+ export interface PostRequestOptions {
5
+ headers?: Record<string, string>;
6
+ contentType?: "application/json" | "application/x-www-form-urlencoded" | "text/plain" | string;
7
+ timeout?: number;
8
+ }
9
+ /**
10
+ * ObservableQuery extension that supports POST requests
11
+ */
12
+ export declare class ObservablePostQuery<T = unknown, E = unknown, Body = unknown> extends ObservableQuery<T, E> {
13
+ protected _body?: Body;
14
+ protected _postOptions: PostRequestOptions;
15
+ constructor(sharedContext: QuerySharedContext, baseURL: string, url: string, body?: Body | undefined, postOptions?: PostRequestOptions, options?: Partial<QueryOptions>);
16
+ protected fetchResponse(abortController: AbortController): Promise<{
17
+ headers: any;
18
+ data: T;
19
+ }>;
20
+ protected getCacheKey(): string;
21
+ }
22
+ export declare class ObservablePostQueryMap<T = unknown, E = unknown, Body = unknown> extends HasMapStore<ObservablePostQuery<T, E, Body>> {
23
+ constructor(creater: (key: string) => ObservablePostQuery<T, E, Body>);
24
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ObservablePostQueryMap = exports.ObservablePostQuery = void 0;
19
+ const query_1 = require("./query");
20
+ const mobx_1 = require("mobx");
21
+ const crypto_1 = require("@keplr-wallet/crypto");
22
+ const buffer_1 = require("buffer/");
23
+ const map_1 = require("../map");
24
+ const simple_fetch_1 = require("@keplr-wallet/simple-fetch");
25
+ /**
26
+ * ObservableQuery extension that supports POST requests
27
+ */
28
+ class ObservablePostQuery extends query_1.ObservableQuery {
29
+ constructor(sharedContext, baseURL, url, body = undefined, postOptions = {}, options = {}) {
30
+ super(sharedContext, baseURL, url, options);
31
+ this._body = body;
32
+ this._postOptions = Object.assign({ contentType: "application/json" }, postOptions);
33
+ (0, mobx_1.makeObservable)(this);
34
+ }
35
+ fetchResponse(abortController) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const headers = Object.assign({ "content-type": this._postOptions.contentType || "application/json" }, this._postOptions.headers);
38
+ let body;
39
+ if (this._body !== undefined) {
40
+ if (this._postOptions.contentType === "application/json") {
41
+ body = JSON.stringify(this._body);
42
+ }
43
+ else if (typeof this._body === "string") {
44
+ body = this._body;
45
+ }
46
+ else {
47
+ body = String(this._body);
48
+ }
49
+ }
50
+ const result = yield (0, simple_fetch_1.simpleFetch)(this.baseURL, this.url, {
51
+ method: "POST",
52
+ headers,
53
+ body,
54
+ signal: abortController.signal,
55
+ });
56
+ return {
57
+ headers: result.headers,
58
+ data: result.data,
59
+ };
60
+ });
61
+ }
62
+ getCacheKey() {
63
+ const baseKey = super.getCacheKey();
64
+ const extraKeys = [this._postOptions, ...(this._body ? [this._body] : [])];
65
+ const hash = buffer_1.Buffer.from(crypto_1.Hash.sha256(buffer_1.Buffer.from(JSON.stringify(extraKeys))).slice(0, 8)).toString("hex");
66
+ return `${baseKey}-post-${hash}`;
67
+ }
68
+ }
69
+ __decorate([
70
+ mobx_1.observable
71
+ ], ObservablePostQuery.prototype, "_body", void 0);
72
+ __decorate([
73
+ mobx_1.observable
74
+ ], ObservablePostQuery.prototype, "_postOptions", void 0);
75
+ exports.ObservablePostQuery = ObservablePostQuery;
76
+ class ObservablePostQueryMap extends map_1.HasMapStore {
77
+ constructor(creater) {
78
+ super(creater);
79
+ }
80
+ }
81
+ exports.ObservablePostQueryMap = ObservablePostQueryMap;
82
+ //# sourceMappingURL=post-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-query.js","sourceRoot":"","sources":["../../../src/common/query/post-query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,mCAAwD;AAExD,+BAAkD;AAClD,iDAA4C;AAC5C,oCAAiC;AACjC,gCAAqC;AACrC,6DAAyD;AAYzD;;GAEG;AACH,MAAa,mBAIX,SAAQ,uBAAqB;IAO7B,YACE,aAAiC,EACjC,OAAe,EACf,GAAW,EACX,OAAyB,SAAS,EAClC,cAAkC,EAAE,EACpC,UAAiC,EAAE;QAEnC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,mBACf,WAAW,EAAE,kBAAkB,IAC5B,WAAW,CACf,CAAC;QAEF,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEwB,aAAa,CACpC,eAAgC;;YAEhC,MAAM,OAAO,mBACX,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,kBAAkB,IAChE,IAAI,CAAC,YAAY,CAAC,OAAO,CAC7B,CAAC;YAEF,IAAI,IAAwB,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,kBAAkB,EAAE;oBACxD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnC;qBAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;oBACzC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;iBACnB;qBAAM;oBACL,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC3B;aACF;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAW,EAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC1D,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;KAAA;IAEkB,WAAW;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3E,MAAM,IAAI,GAAG,eAAM,CAAC,IAAI,CACtB,aAAI,CAAC,MAAM,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAChE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElB,OAAO,GAAG,OAAO,SAAS,IAAI,EAAE,CAAC;IACnC,CAAC;CACF;AAlEW;IADT,iBAAU;kDACY;AAGb;IADT,iBAAU;yDACgC;AAT7C,kDAwEC;AAED,MAAa,sBAIX,SAAQ,iBAA4C;IACpD,YAAY,OAAyD;QACnE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AARD,wDAQC"}
@@ -0,0 +1,32 @@
1
+ import { ObservablePostQuery, PostRequestOptions } from "./post-query";
2
+ import { QuerySharedContext } from "./context";
3
+ interface TestData {
4
+ message: string;
5
+ timestamp: number;
6
+ }
7
+ interface TestBody {
8
+ query: string;
9
+ params?: any;
10
+ }
11
+ export declare class MockObservablePostQuery extends ObservablePostQuery<TestData, Error, TestBody> {
12
+ protected resolver: {
13
+ resolve: (res: {
14
+ headers: any;
15
+ data: TestData;
16
+ }) => void;
17
+ reject: (e: Error) => void;
18
+ } | undefined;
19
+ constructor(sharedContext: QuerySharedContext, body?: TestBody, postOptions?: PostRequestOptions, options?: Partial<any>);
20
+ changeURL(url: string): void;
21
+ protected fetchResponse(abortController: AbortController): Promise<{
22
+ headers: any;
23
+ data: TestData;
24
+ }>;
25
+ waitBeforeFetchResponse(): Promise<void>;
26
+ resolveResponse(res: {
27
+ headers: any;
28
+ data: TestData;
29
+ }): void;
30
+ rejectResponse(e: Error): void;
31
+ }
32
+ export {};
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MockObservablePostQuery = void 0;
19
+ const post_query_1 = require("./post-query");
20
+ const context_1 = require("./context");
21
+ const common_1 = require("@keplr-wallet/common");
22
+ const mobx_1 = require("mobx");
23
+ const TEST_BASE_URL = "https://httpbin.org";
24
+ const TEST_URL = "/post";
25
+ class MockObservablePostQuery extends post_query_1.ObservablePostQuery {
26
+ constructor(sharedContext, body, postOptions = {}, options = {}) {
27
+ super(sharedContext, TEST_BASE_URL, TEST_URL, body, postOptions, options);
28
+ this.resolver = undefined;
29
+ (0, mobx_1.makeObservable)(this);
30
+ }
31
+ changeURL(url) {
32
+ this.setUrl(url);
33
+ }
34
+ fetchResponse(abortController) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ abortController.signal.onabort = () => {
37
+ if (this.resolver) {
38
+ (0, mobx_1.runInAction)(() => {
39
+ this.resolver = undefined;
40
+ });
41
+ }
42
+ };
43
+ return new Promise((resolve, reject) => {
44
+ (0, mobx_1.runInAction)(() => {
45
+ this.resolver = {
46
+ resolve,
47
+ reject,
48
+ };
49
+ });
50
+ });
51
+ });
52
+ }
53
+ waitBeforeFetchResponse() {
54
+ return new Promise((resolve) => {
55
+ const disposal = (0, mobx_1.autorun)(() => {
56
+ if (this.resolver) {
57
+ resolve();
58
+ if (disposal) {
59
+ disposal();
60
+ }
61
+ }
62
+ }, {
63
+ delay: 10,
64
+ });
65
+ });
66
+ }
67
+ resolveResponse(res) {
68
+ if (!this.resolver) {
69
+ throw new Error("Resolver is not set");
70
+ }
71
+ this.resolver.resolve(res);
72
+ (0, mobx_1.runInAction)(() => {
73
+ this.resolver = undefined;
74
+ });
75
+ }
76
+ rejectResponse(e) {
77
+ if (!this.resolver) {
78
+ throw new Error("Resolver is not set");
79
+ }
80
+ this.resolver.reject(e);
81
+ (0, mobx_1.runInAction)(() => {
82
+ this.resolver = undefined;
83
+ });
84
+ }
85
+ }
86
+ __decorate([
87
+ mobx_1.observable.ref
88
+ ], MockObservablePostQuery.prototype, "resolver", void 0);
89
+ exports.MockObservablePostQuery = MockObservablePostQuery;
90
+ class TestObservablePostQueryMap extends post_query_1.ObservablePostQueryMap {
91
+ getQuery(key) {
92
+ return this.get(key);
93
+ }
94
+ hasQuery(key) {
95
+ return this.has(key);
96
+ }
97
+ }
98
+ describe("Test ObservablePostQuery", () => {
99
+ it("test basic post query", () => __awaiter(void 0, void 0, void 0, function* () {
100
+ var _a, _b;
101
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
102
+ const testBody = { query: "test", params: { limit: 10 } };
103
+ const store = new MockObservablePostQuery(new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
104
+ responseDebounceMs: 10,
105
+ }), testBody);
106
+ expect(store.isObserved).toBe(false);
107
+ expect(store.isStarted).toBe(false);
108
+ expect(store.isFetching).toBe(false);
109
+ const disposal = (0, mobx_1.autorun)(() => {
110
+ if (store.response && store.response.data.message !== "success") {
111
+ throw new Error();
112
+ }
113
+ });
114
+ expect(store.isObserved).toBe(true);
115
+ expect(store.isStarted).toBe(true);
116
+ expect(store.isFetching).toBe(true);
117
+ yield store.waitBeforeFetchResponse();
118
+ store.resolveResponse({
119
+ headers: { "content-type": "application/json" },
120
+ data: { message: "success", timestamp: Date.now() },
121
+ });
122
+ yield store.waitResponse();
123
+ expect(store.isObserved).toBe(true);
124
+ expect(store.isStarted).toBe(true);
125
+ expect(store.isFetching).toBe(false);
126
+ expect((_a = store.response) === null || _a === void 0 ? void 0 : _a.data.message).toBe("success");
127
+ disposal();
128
+ expect(store.isObserved).toBe(false);
129
+ expect(store.isStarted).toBe(false);
130
+ expect(store.isFetching).toBe(false);
131
+ expect((_b = store.response) === null || _b === void 0 ? void 0 : _b.data.message).toBe("success");
132
+ expect(spyAbort).toBeCalledTimes(0);
133
+ }));
134
+ it("test basic waitResponse()", () => __awaiter(void 0, void 0, void 0, function* () {
135
+ var _c;
136
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
137
+ const testBody = { query: "wait-test" };
138
+ const store = new MockObservablePostQuery(new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
139
+ responseDebounceMs: 10,
140
+ }), testBody);
141
+ expect(store.isObserved).toBe(false);
142
+ expect(store.isStarted).toBe(false);
143
+ expect(store.isFetching).toBe(false);
144
+ store.waitBeforeFetchResponse().then(() => {
145
+ store.resolveResponse({
146
+ headers: {},
147
+ data: { message: "wait-success", timestamp: Date.now() },
148
+ });
149
+ });
150
+ yield store.waitResponse();
151
+ expect(store.isObserved).toBe(false);
152
+ expect(store.isStarted).toBe(false);
153
+ expect(store.isFetching).toBe(false);
154
+ expect((_c = store.response) === null || _c === void 0 ? void 0 : _c.data.message).toBe("wait-success");
155
+ expect(spyAbort).toBeCalledTimes(0);
156
+ }));
157
+ it("test basic waitResponse() with observation disposed", () => __awaiter(void 0, void 0, void 0, function* () {
158
+ var _d;
159
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
160
+ const testBody = { query: "disposed-test" };
161
+ const store = new MockObservablePostQuery(new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
162
+ responseDebounceMs: 10,
163
+ }), testBody);
164
+ const disposal = (0, mobx_1.autorun)(() => {
165
+ if (store.response) {
166
+ throw new Error();
167
+ }
168
+ });
169
+ expect(store.isObserved).toBe(true);
170
+ expect(store.isStarted).toBe(true);
171
+ expect(store.isFetching).toBe(true);
172
+ setTimeout(() => {
173
+ disposal();
174
+ setTimeout(() => {
175
+ store.waitBeforeFetchResponse().then(() => {
176
+ store.resolveResponse({
177
+ headers: {},
178
+ data: { message: "disposed-success", timestamp: Date.now() },
179
+ });
180
+ });
181
+ }, 100);
182
+ }, 100);
183
+ yield store.waitResponse();
184
+ expect(store.isObserved).toBe(false);
185
+ expect(store.isStarted).toBe(false);
186
+ expect(store.isFetching).toBe(false);
187
+ expect((_d = store.response) === null || _d === void 0 ? void 0 : _d.data.message).toBe("disposed-success");
188
+ expect(spyAbort).toBeCalledTimes(0);
189
+ }));
190
+ it("test basic waitFreshResponse()", () => __awaiter(void 0, void 0, void 0, function* () {
191
+ var _e;
192
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
193
+ const testBody = { query: "fresh-test" };
194
+ const store = new MockObservablePostQuery(new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
195
+ responseDebounceMs: 10,
196
+ }), testBody);
197
+ expect(store.isObserved).toBe(false);
198
+ expect(store.isStarted).toBe(false);
199
+ expect(store.isFetching).toBe(false);
200
+ store.waitBeforeFetchResponse().then(() => {
201
+ store.resolveResponse({
202
+ headers: {},
203
+ data: { message: "fresh-success", timestamp: Date.now() },
204
+ });
205
+ });
206
+ yield store.waitFreshResponse();
207
+ expect(store.isObserved).toBe(false);
208
+ expect(store.isStarted).toBe(false);
209
+ expect(store.isFetching).toBe(false);
210
+ expect((_e = store.response) === null || _e === void 0 ? void 0 : _e.data.message).toBe("fresh-success");
211
+ expect(spyAbort).toBeCalledTimes(0);
212
+ }));
213
+ it("test basic waitFreshResponse() with observation disposed", () => __awaiter(void 0, void 0, void 0, function* () {
214
+ var _f;
215
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
216
+ const testBody = { query: "fresh-disposed-test" };
217
+ const store = new MockObservablePostQuery(new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
218
+ responseDebounceMs: 10,
219
+ }), testBody);
220
+ const disposal = (0, mobx_1.autorun)(() => {
221
+ if (store.response) {
222
+ throw new Error();
223
+ }
224
+ });
225
+ expect(store.isObserved).toBe(true);
226
+ expect(store.isStarted).toBe(true);
227
+ expect(store.isFetching).toBe(true);
228
+ setTimeout(() => {
229
+ disposal();
230
+ setTimeout(() => {
231
+ store.waitBeforeFetchResponse().then(() => {
232
+ store.resolveResponse({
233
+ headers: {},
234
+ data: { message: "fresh-disposed-success", timestamp: Date.now() },
235
+ });
236
+ });
237
+ }, 100);
238
+ }, 100);
239
+ yield store.waitFreshResponse();
240
+ expect(store.isObserved).toBe(false);
241
+ expect(store.isStarted).toBe(false);
242
+ expect(store.isFetching).toBe(false);
243
+ expect((_f = store.response) === null || _f === void 0 ? void 0 : _f.data.message).toBe("fresh-disposed-success");
244
+ expect(spyAbort).toBeCalledTimes(0);
245
+ }));
246
+ it("test cache key generation with body", () => {
247
+ const sharedContext = new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
248
+ responseDebounceMs: 10,
249
+ });
250
+ // Case without body
251
+ const storeWithoutBody = new MockObservablePostQuery(sharedContext);
252
+ const cacheKeyWithoutBody = storeWithoutBody.getCacheKey();
253
+ expect(cacheKeyWithoutBody).toContain("-post");
254
+ // Case with body
255
+ const storeWithBody = new MockObservablePostQuery(sharedContext, {
256
+ query: "test",
257
+ params: { id: 123 },
258
+ });
259
+ const cacheKeyWithBody = storeWithBody.getCacheKey();
260
+ expect(cacheKeyWithBody).toContain("-post-");
261
+ expect(cacheKeyWithBody).not.toBe(cacheKeyWithoutBody);
262
+ // Generate different cache key with different body
263
+ const storeWithDifferentBody = new MockObservablePostQuery(sharedContext, {
264
+ query: "different",
265
+ params: { id: 456 },
266
+ });
267
+ const cacheKeyWithDifferentBody = storeWithDifferentBody.getCacheKey();
268
+ expect(cacheKeyWithDifferentBody).not.toBe(cacheKeyWithBody);
269
+ });
270
+ });
271
+ describe("Test ObservablePostQueryMap", () => {
272
+ it("test post query map creation", () => {
273
+ const sharedContext = new context_1.QuerySharedContext(new common_1.MemoryKVStore("test"), {
274
+ responseDebounceMs: 10,
275
+ });
276
+ const queryMap = new TestObservablePostQueryMap((key) => {
277
+ return new MockObservablePostQuery(sharedContext, { query: key }, { contentType: "application/json" });
278
+ });
279
+ // 1. First query creation
280
+ const query1 = queryMap.getQuery("test1");
281
+ expect(query1).toBeDefined();
282
+ // 2. Same key access returns the same instance
283
+ const query1Again = queryMap.getQuery("test1");
284
+ expect(query1).toBe(query1Again);
285
+ // 3. New query creation with different key
286
+ const query2 = queryMap.getQuery("test2");
287
+ expect(query2).not.toBe(query1);
288
+ expect(query2).toBeDefined();
289
+ });
290
+ });
291
+ //# sourceMappingURL=post-query.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-query.spec.js","sourceRoot":"","sources":["../../../src/common/query/post-query.spec.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { QuerySharedContext } from "./context";
3
3
  export type QueryOptions = {
4
4
  readonly cacheMaxAge: number;
5
5
  readonly fetchingInterval: number;
6
+ readonly disableCache: boolean;
6
7
  };
7
8
  export declare const defaultOptions: QueryOptions;
8
9
  export type QueryError<E> = {
@@ -24,6 +24,7 @@ const buffer_1 = require("buffer/");
24
24
  exports.defaultOptions = {
25
25
  cacheMaxAge: 0,
26
26
  fetchingInterval: 0,
27
+ disableCache: false,
27
28
  };
28
29
  class FlowCancelerError extends Error {
29
30
  constructor(m) {
@@ -279,7 +280,10 @@ class ObservableQuery {
279
280
  }
280
281
  }
281
282
  else {
282
- if (this.options.cacheMaxAge > 0) {
283
+ if (this.options.disableCache) {
284
+ // Skip cache check when cache is disabled
285
+ }
286
+ else if (this.options.cacheMaxAge > 0) {
283
287
  if (this._response.timestamp > Date.now() - this.options.cacheMaxAge) {
284
288
  this._isFetching = false;
285
289
  return;
@@ -345,8 +349,11 @@ class ObservableQuery {
345
349
  local: false,
346
350
  timestamp: Date.now(),
347
351
  };
348
- // Should not wait.
349
- this.saveResponse(response);
352
+ // Skip saving response if disableCache is true.
353
+ if (!this.options.disableCache) {
354
+ // Should not wait.
355
+ this.saveResponse(response);
356
+ }
350
357
  this.onReceiveResponse(response);
351
358
  yield this.sharedContext.handleResponse(() => {
352
359
  this.setResponse(response);
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/common/query/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/common/query/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores",
3
- "version": "0.12.274",
3
+ "version": "0.12.276-rc.0",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -16,17 +16,17 @@
16
16
  "lint-fix": "npx eslint --fix \"src/**/*\" && npx prettier --write \"src/**/*\""
17
17
  },
18
18
  "devDependencies": {
19
- "@keplr-wallet/provider-mock": "0.12.274"
19
+ "@keplr-wallet/provider-mock": "0.12.276-rc.0"
20
20
  },
21
21
  "dependencies": {
22
- "@keplr-wallet/common": "0.12.274",
23
- "@keplr-wallet/cosmos": "0.12.274",
24
- "@keplr-wallet/crypto": "0.12.274",
25
- "@keplr-wallet/mobx-utils": "0.12.274",
26
- "@keplr-wallet/proto-types": "0.12.274",
27
- "@keplr-wallet/simple-fetch": "0.12.274",
28
- "@keplr-wallet/types": "0.12.274",
29
- "@keplr-wallet/unit": "0.12.274",
22
+ "@keplr-wallet/common": "0.12.276-rc.0",
23
+ "@keplr-wallet/cosmos": "0.12.276-rc.0",
24
+ "@keplr-wallet/crypto": "0.12.276-rc.0",
25
+ "@keplr-wallet/mobx-utils": "0.12.276-rc.0",
26
+ "@keplr-wallet/proto-types": "0.12.276-rc.0",
27
+ "@keplr-wallet/simple-fetch": "0.12.276-rc.0",
28
+ "@keplr-wallet/types": "0.12.276-rc.0",
29
+ "@keplr-wallet/unit": "0.12.276-rc.0",
30
30
  "buffer": "^6.0.3",
31
31
  "deepmerge": "^4.2.2",
32
32
  "eventemitter3": "^4.0.7",
@@ -38,5 +38,5 @@
38
38
  "mobx": "^6",
39
39
  "mobx-utils": "^6"
40
40
  },
41
- "gitHead": "b7652767cd2f00767f05694e6b887d79c7725f6f"
41
+ "gitHead": "dbc6ab20f308c34302e9fd4300eac9d6de821e81"
42
42
  }
@@ -1,3 +1,4 @@
1
1
  export * from "./query";
2
+ export * from "./post-query";
2
3
  export * from "./json-rpc";
3
4
  export * from "./context";
@@ -0,0 +1,389 @@
1
+ import {
2
+ ObservablePostQuery,
3
+ ObservablePostQueryMap,
4
+ PostRequestOptions,
5
+ } from "./post-query";
6
+ import { QuerySharedContext } from "./context";
7
+ import { MemoryKVStore } from "@keplr-wallet/common";
8
+ import { autorun, makeObservable, observable, runInAction } from "mobx";
9
+
10
+ interface TestData {
11
+ message: string;
12
+ timestamp: number;
13
+ }
14
+
15
+ interface TestBody {
16
+ query: string;
17
+ params?: any;
18
+ }
19
+
20
+ const TEST_BASE_URL = "https://httpbin.org";
21
+ const TEST_URL = "/post";
22
+
23
+ export class MockObservablePostQuery extends ObservablePostQuery<
24
+ TestData,
25
+ Error,
26
+ TestBody
27
+ > {
28
+ @observable.ref
29
+ protected resolver:
30
+ | {
31
+ resolve: (res: { headers: any; data: TestData }) => void;
32
+ reject: (e: Error) => void;
33
+ }
34
+ | undefined = undefined;
35
+
36
+ constructor(
37
+ sharedContext: QuerySharedContext,
38
+ body?: TestBody,
39
+ postOptions: PostRequestOptions = {},
40
+ options: Partial<any> = {}
41
+ ) {
42
+ super(sharedContext, TEST_BASE_URL, TEST_URL, body, postOptions, options);
43
+
44
+ makeObservable(this);
45
+ }
46
+
47
+ changeURL(url: string) {
48
+ this.setUrl(url);
49
+ }
50
+
51
+ protected override async fetchResponse(
52
+ abortController: AbortController
53
+ ): Promise<{ headers: any; data: TestData }> {
54
+ abortController.signal.onabort = () => {
55
+ if (this.resolver) {
56
+ runInAction(() => {
57
+ this.resolver = undefined;
58
+ });
59
+ }
60
+ };
61
+
62
+ return new Promise((resolve, reject) => {
63
+ runInAction(() => {
64
+ this.resolver = {
65
+ resolve,
66
+ reject,
67
+ };
68
+ });
69
+ });
70
+ }
71
+
72
+ waitBeforeFetchResponse() {
73
+ return new Promise<void>((resolve) => {
74
+ const disposal = autorun(
75
+ () => {
76
+ if (this.resolver) {
77
+ resolve();
78
+ if (disposal) {
79
+ disposal();
80
+ }
81
+ }
82
+ },
83
+ {
84
+ delay: 10,
85
+ }
86
+ );
87
+ });
88
+ }
89
+
90
+ resolveResponse(res: { headers: any; data: TestData }) {
91
+ if (!this.resolver) {
92
+ throw new Error("Resolver is not set");
93
+ }
94
+
95
+ this.resolver.resolve(res);
96
+ runInAction(() => {
97
+ this.resolver = undefined;
98
+ });
99
+ }
100
+
101
+ rejectResponse(e: Error) {
102
+ if (!this.resolver) {
103
+ throw new Error("Resolver is not set");
104
+ }
105
+
106
+ this.resolver.reject(e);
107
+ runInAction(() => {
108
+ this.resolver = undefined;
109
+ });
110
+ }
111
+ }
112
+
113
+ class TestObservablePostQueryMap<
114
+ T = unknown,
115
+ E = unknown,
116
+ Body = unknown
117
+ > extends ObservablePostQueryMap<T, E, Body> {
118
+ public getQuery(key: string): ObservablePostQuery<T, E, Body> {
119
+ return this.get(key);
120
+ }
121
+
122
+ public hasQuery(key: string): boolean {
123
+ return this.has(key);
124
+ }
125
+ }
126
+
127
+ describe("Test ObservablePostQuery", () => {
128
+ it("test basic post query", async () => {
129
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
130
+
131
+ const testBody: TestBody = { query: "test", params: { limit: 10 } };
132
+ const store = new MockObservablePostQuery(
133
+ new QuerySharedContext(new MemoryKVStore("test"), {
134
+ responseDebounceMs: 10,
135
+ }),
136
+ testBody
137
+ );
138
+
139
+ expect(store.isObserved).toBe(false);
140
+ expect(store.isStarted).toBe(false);
141
+ expect(store.isFetching).toBe(false);
142
+
143
+ const disposal = autorun(() => {
144
+ if (store.response && store.response.data.message !== "success") {
145
+ throw new Error();
146
+ }
147
+ });
148
+
149
+ expect(store.isObserved).toBe(true);
150
+ expect(store.isStarted).toBe(true);
151
+ expect(store.isFetching).toBe(true);
152
+
153
+ await store.waitBeforeFetchResponse();
154
+ store.resolveResponse({
155
+ headers: { "content-type": "application/json" },
156
+ data: { message: "success", timestamp: Date.now() },
157
+ });
158
+ await store.waitResponse();
159
+
160
+ expect(store.isObserved).toBe(true);
161
+ expect(store.isStarted).toBe(true);
162
+ expect(store.isFetching).toBe(false);
163
+
164
+ expect(store.response?.data.message).toBe("success");
165
+
166
+ disposal();
167
+
168
+ expect(store.isObserved).toBe(false);
169
+ expect(store.isStarted).toBe(false);
170
+ expect(store.isFetching).toBe(false);
171
+
172
+ expect(store.response?.data.message).toBe("success");
173
+
174
+ expect(spyAbort).toBeCalledTimes(0);
175
+ });
176
+
177
+ it("test basic waitResponse()", async () => {
178
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
179
+
180
+ const testBody: TestBody = { query: "wait-test" };
181
+ const store = new MockObservablePostQuery(
182
+ new QuerySharedContext(new MemoryKVStore("test"), {
183
+ responseDebounceMs: 10,
184
+ }),
185
+ testBody
186
+ );
187
+
188
+ expect(store.isObserved).toBe(false);
189
+ expect(store.isStarted).toBe(false);
190
+ expect(store.isFetching).toBe(false);
191
+
192
+ store.waitBeforeFetchResponse().then(() => {
193
+ store.resolveResponse({
194
+ headers: {},
195
+ data: { message: "wait-success", timestamp: Date.now() },
196
+ });
197
+ });
198
+ await store.waitResponse();
199
+
200
+ expect(store.isObserved).toBe(false);
201
+ expect(store.isStarted).toBe(false);
202
+ expect(store.isFetching).toBe(false);
203
+
204
+ expect(store.response?.data.message).toBe("wait-success");
205
+
206
+ expect(spyAbort).toBeCalledTimes(0);
207
+ });
208
+
209
+ it("test basic waitResponse() with observation disposed", async () => {
210
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
211
+
212
+ const testBody: TestBody = { query: "disposed-test" };
213
+ const store = new MockObservablePostQuery(
214
+ new QuerySharedContext(new MemoryKVStore("test"), {
215
+ responseDebounceMs: 10,
216
+ }),
217
+ testBody
218
+ );
219
+
220
+ const disposal = autorun(() => {
221
+ if (store.response) {
222
+ throw new Error();
223
+ }
224
+ });
225
+
226
+ expect(store.isObserved).toBe(true);
227
+ expect(store.isStarted).toBe(true);
228
+ expect(store.isFetching).toBe(true);
229
+
230
+ setTimeout(() => {
231
+ disposal();
232
+
233
+ setTimeout(() => {
234
+ store.waitBeforeFetchResponse().then(() => {
235
+ store.resolveResponse({
236
+ headers: {},
237
+ data: { message: "disposed-success", timestamp: Date.now() },
238
+ });
239
+ });
240
+ }, 100);
241
+ }, 100);
242
+ await store.waitResponse();
243
+
244
+ expect(store.isObserved).toBe(false);
245
+ expect(store.isStarted).toBe(false);
246
+ expect(store.isFetching).toBe(false);
247
+
248
+ expect(store.response?.data.message).toBe("disposed-success");
249
+
250
+ expect(spyAbort).toBeCalledTimes(0);
251
+ });
252
+
253
+ it("test basic waitFreshResponse()", async () => {
254
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
255
+
256
+ const testBody: TestBody = { query: "fresh-test" };
257
+ const store = new MockObservablePostQuery(
258
+ new QuerySharedContext(new MemoryKVStore("test"), {
259
+ responseDebounceMs: 10,
260
+ }),
261
+ testBody
262
+ );
263
+
264
+ expect(store.isObserved).toBe(false);
265
+ expect(store.isStarted).toBe(false);
266
+ expect(store.isFetching).toBe(false);
267
+
268
+ store.waitBeforeFetchResponse().then(() => {
269
+ store.resolveResponse({
270
+ headers: {},
271
+ data: { message: "fresh-success", timestamp: Date.now() },
272
+ });
273
+ });
274
+ await store.waitFreshResponse();
275
+
276
+ expect(store.isObserved).toBe(false);
277
+ expect(store.isStarted).toBe(false);
278
+ expect(store.isFetching).toBe(false);
279
+
280
+ expect(store.response?.data.message).toBe("fresh-success");
281
+
282
+ expect(spyAbort).toBeCalledTimes(0);
283
+ });
284
+
285
+ it("test basic waitFreshResponse() with observation disposed", async () => {
286
+ const spyAbort = jest.spyOn(AbortController.prototype, "abort");
287
+
288
+ const testBody: TestBody = { query: "fresh-disposed-test" };
289
+ const store = new MockObservablePostQuery(
290
+ new QuerySharedContext(new MemoryKVStore("test"), {
291
+ responseDebounceMs: 10,
292
+ }),
293
+ testBody
294
+ );
295
+
296
+ const disposal = autorun(() => {
297
+ if (store.response) {
298
+ throw new Error();
299
+ }
300
+ });
301
+
302
+ expect(store.isObserved).toBe(true);
303
+ expect(store.isStarted).toBe(true);
304
+ expect(store.isFetching).toBe(true);
305
+
306
+ setTimeout(() => {
307
+ disposal();
308
+
309
+ setTimeout(() => {
310
+ store.waitBeforeFetchResponse().then(() => {
311
+ store.resolveResponse({
312
+ headers: {},
313
+ data: { message: "fresh-disposed-success", timestamp: Date.now() },
314
+ });
315
+ });
316
+ }, 100);
317
+ }, 100);
318
+ await store.waitFreshResponse();
319
+
320
+ expect(store.isObserved).toBe(false);
321
+ expect(store.isStarted).toBe(false);
322
+ expect(store.isFetching).toBe(false);
323
+
324
+ expect(store.response?.data.message).toBe("fresh-disposed-success");
325
+
326
+ expect(spyAbort).toBeCalledTimes(0);
327
+ });
328
+
329
+ it("test cache key generation with body", () => {
330
+ const sharedContext = new QuerySharedContext(new MemoryKVStore("test"), {
331
+ responseDebounceMs: 10,
332
+ });
333
+
334
+ // Case without body
335
+ const storeWithoutBody = new MockObservablePostQuery(sharedContext);
336
+ const cacheKeyWithoutBody = (storeWithoutBody as any).getCacheKey();
337
+ expect(cacheKeyWithoutBody).toContain("-post");
338
+
339
+ // Case with body
340
+ const storeWithBody = new MockObservablePostQuery(sharedContext, {
341
+ query: "test",
342
+ params: { id: 123 },
343
+ });
344
+ const cacheKeyWithBody = (storeWithBody as any).getCacheKey();
345
+ expect(cacheKeyWithBody).toContain("-post-");
346
+ expect(cacheKeyWithBody).not.toBe(cacheKeyWithoutBody);
347
+
348
+ // Generate different cache key with different body
349
+ const storeWithDifferentBody = new MockObservablePostQuery(sharedContext, {
350
+ query: "different",
351
+ params: { id: 456 },
352
+ });
353
+ const cacheKeyWithDifferentBody = (
354
+ storeWithDifferentBody as any
355
+ ).getCacheKey();
356
+ expect(cacheKeyWithDifferentBody).not.toBe(cacheKeyWithBody);
357
+ });
358
+ });
359
+
360
+ describe("Test ObservablePostQueryMap", () => {
361
+ it("test post query map creation", () => {
362
+ const sharedContext = new QuerySharedContext(new MemoryKVStore("test"), {
363
+ responseDebounceMs: 10,
364
+ });
365
+
366
+ const queryMap = new TestObservablePostQueryMap<TestData, Error, TestBody>(
367
+ (key: string) => {
368
+ return new MockObservablePostQuery(
369
+ sharedContext,
370
+ { query: key },
371
+ { contentType: "application/json" }
372
+ );
373
+ }
374
+ );
375
+
376
+ // 1. First query creation
377
+ const query1 = queryMap.getQuery("test1");
378
+ expect(query1).toBeDefined();
379
+
380
+ // 2. Same key access returns the same instance
381
+ const query1Again = queryMap.getQuery("test1");
382
+ expect(query1).toBe(query1Again);
383
+
384
+ // 3. New query creation with different key
385
+ const query2 = queryMap.getQuery("test2");
386
+ expect(query2).not.toBe(query1);
387
+ expect(query2).toBeDefined();
388
+ });
389
+ });
@@ -0,0 +1,104 @@
1
+ import { ObservableQuery, QueryOptions } from "./query";
2
+ import { QuerySharedContext } from "./context";
3
+ import { makeObservable, observable } from "mobx";
4
+ import { Hash } from "@keplr-wallet/crypto";
5
+ import { Buffer } from "buffer/";
6
+ import { HasMapStore } from "../map";
7
+ import { simpleFetch } from "@keplr-wallet/simple-fetch";
8
+
9
+ export interface PostRequestOptions {
10
+ headers?: Record<string, string>;
11
+ contentType?:
12
+ | "application/json"
13
+ | "application/x-www-form-urlencoded"
14
+ | "text/plain"
15
+ | string;
16
+ timeout?: number;
17
+ }
18
+
19
+ /**
20
+ * ObservableQuery extension that supports POST requests
21
+ */
22
+ export class ObservablePostQuery<
23
+ T = unknown,
24
+ E = unknown,
25
+ Body = unknown
26
+ > extends ObservableQuery<T, E> {
27
+ @observable
28
+ protected _body?: Body;
29
+
30
+ @observable
31
+ protected _postOptions: PostRequestOptions;
32
+
33
+ constructor(
34
+ sharedContext: QuerySharedContext,
35
+ baseURL: string,
36
+ url: string,
37
+ body: Body | undefined = undefined,
38
+ postOptions: PostRequestOptions = {},
39
+ options: Partial<QueryOptions> = {}
40
+ ) {
41
+ super(sharedContext, baseURL, url, options);
42
+
43
+ this._body = body;
44
+ this._postOptions = {
45
+ contentType: "application/json",
46
+ ...postOptions,
47
+ };
48
+
49
+ makeObservable(this);
50
+ }
51
+
52
+ protected override async fetchResponse(
53
+ abortController: AbortController
54
+ ): Promise<{ headers: any; data: T }> {
55
+ const headers: Record<string, string> = {
56
+ "content-type": this._postOptions.contentType || "application/json",
57
+ ...this._postOptions.headers,
58
+ };
59
+
60
+ let body: string | undefined;
61
+ if (this._body !== undefined) {
62
+ if (this._postOptions.contentType === "application/json") {
63
+ body = JSON.stringify(this._body);
64
+ } else if (typeof this._body === "string") {
65
+ body = this._body;
66
+ } else {
67
+ body = String(this._body);
68
+ }
69
+ }
70
+
71
+ const result = await simpleFetch<T>(this.baseURL, this.url, {
72
+ method: "POST",
73
+ headers,
74
+ body,
75
+ signal: abortController.signal,
76
+ });
77
+
78
+ return {
79
+ headers: result.headers,
80
+ data: result.data,
81
+ };
82
+ }
83
+
84
+ protected override getCacheKey(): string {
85
+ const baseKey = super.getCacheKey();
86
+ const extraKeys = [this._postOptions, ...(this._body ? [this._body] : [])];
87
+
88
+ const hash = Buffer.from(
89
+ Hash.sha256(Buffer.from(JSON.stringify(extraKeys))).slice(0, 8)
90
+ ).toString("hex");
91
+
92
+ return `${baseKey}-post-${hash}`;
93
+ }
94
+ }
95
+
96
+ export class ObservablePostQueryMap<
97
+ T = unknown,
98
+ E = unknown,
99
+ Body = unknown
100
+ > extends HasMapStore<ObservablePostQuery<T, E, Body>> {
101
+ constructor(creater: (key: string) => ObservablePostQuery<T, E, Body>) {
102
+ super(creater);
103
+ }
104
+ }
@@ -19,11 +19,13 @@ export type QueryOptions = {
19
19
  readonly cacheMaxAge: number;
20
20
  // millisec
21
21
  readonly fetchingInterval: number;
22
+ readonly disableCache: boolean;
22
23
  };
23
24
 
24
25
  export const defaultOptions: QueryOptions = {
25
26
  cacheMaxAge: 0,
26
27
  fetchingInterval: 0,
28
+ disableCache: false,
27
29
  };
28
30
 
29
31
  export type QueryError<E> = {
@@ -401,7 +403,9 @@ export abstract class ObservableQuery<T = unknown, E = unknown>
401
403
  }
402
404
  }
403
405
  } else {
404
- if (this.options.cacheMaxAge > 0) {
406
+ if (this.options.disableCache) {
407
+ // Skip cache check when cache is disabled
408
+ } else if (this.options.cacheMaxAge > 0) {
405
409
  if (this._response.timestamp > Date.now() - this.options.cacheMaxAge) {
406
410
  this._isFetching = false;
407
411
  return;
@@ -499,8 +503,11 @@ export abstract class ObservableQuery<T = unknown, E = unknown>
499
503
  local: false,
500
504
  timestamp: Date.now(),
501
505
  };
502
- // Should not wait.
503
- this.saveResponse(response);
506
+ // Skip saving response if disableCache is true.
507
+ if (!this.options.disableCache) {
508
+ // Should not wait.
509
+ this.saveResponse(response);
510
+ }
504
511
 
505
512
  this.onReceiveResponse(response);
506
513
  yield this.sharedContext.handleResponse(() => {