@aws-amplify/datastore 5.0.32 → 5.0.33-s-auth.30d0cd2.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/dist/cjs/authModeStrategies/multiAuthStrategy.js +1 -1
- package/dist/cjs/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/dist/cjs/datastore/datastore.js +46 -41
- package/dist/cjs/datastore/datastore.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/predicates/index.js +1 -0
- package/dist/cjs/predicates/index.js.map +1 -1
- package/dist/cjs/predicates/next.js +13 -12
- package/dist/cjs/predicates/next.js.map +1 -1
- package/dist/cjs/predicates/sort.js +2 -2
- package/dist/cjs/predicates/sort.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js +21 -18
- package/dist/cjs/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js +10 -9
- package/dist/cjs/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js +4 -1
- package/dist/cjs/storage/adapter/InMemoryStore.js.map +1 -1
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js +21 -23
- package/dist/cjs/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/dist/cjs/storage/adapter/StorageAdapterBase.js +7 -7
- package/dist/cjs/storage/adapter/StorageAdapterBase.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js +4 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.js.map +1 -1
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js +1 -0
- package/dist/cjs/storage/adapter/getDefaultAdapter/index.native.js.map +1 -1
- package/dist/cjs/storage/relationship.js +1 -0
- package/dist/cjs/storage/relationship.js.map +1 -1
- package/dist/cjs/storage/storage.js +14 -14
- package/dist/cjs/storage/storage.js.map +1 -1
- package/dist/cjs/sync/datastoreConnectivity.js +0 -3
- package/dist/cjs/sync/datastoreConnectivity.js.map +1 -1
- package/dist/cjs/sync/index.js +47 -43
- package/dist/cjs/sync/index.js.map +1 -1
- package/dist/cjs/sync/merger.js +1 -1
- package/dist/cjs/sync/merger.js.map +1 -1
- package/dist/cjs/sync/outbox.js +19 -17
- package/dist/cjs/sync/outbox.js.map +1 -1
- package/dist/cjs/sync/processors/errorMaps.js.map +1 -1
- package/dist/cjs/sync/processors/mutation.js +31 -28
- package/dist/cjs/sync/processors/mutation.js.map +1 -1
- package/dist/cjs/sync/processors/subscription.js +21 -12
- package/dist/cjs/sync/processors/subscription.js.map +1 -1
- package/dist/cjs/sync/processors/sync.js +25 -21
- package/dist/cjs/sync/processors/sync.js.map +1 -1
- package/dist/cjs/sync/utils.js +20 -21
- package/dist/cjs/sync/utils.js.map +1 -1
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/util.js +46 -25
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.d.ts +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs +1 -1
- package/dist/esm/authModeStrategies/multiAuthStrategy.mjs.map +1 -1
- package/dist/esm/datastore/datastore.d.ts +4 -6
- package/dist/esm/datastore/datastore.mjs +42 -34
- package/dist/esm/datastore/datastore.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/predicates/index.mjs +1 -0
- package/dist/esm/predicates/index.mjs.map +1 -1
- package/dist/esm/predicates/next.d.ts +7 -7
- package/dist/esm/predicates/next.mjs +13 -12
- package/dist/esm/predicates/next.mjs.map +1 -1
- package/dist/esm/predicates/sort.d.ts +1 -1
- package/dist/esm/predicates/sort.mjs +2 -2
- package/dist/esm/predicates/sort.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.d.ts +1 -1
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs +21 -18
- package/dist/esm/storage/adapter/AsyncStorageAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs +10 -9
- package/dist/esm/storage/adapter/AsyncStorageDatabase.mjs.map +1 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs +4 -1
- package/dist/esm/storage/adapter/InMemoryStore.mjs.map +1 -1
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs +21 -23
- package/dist/esm/storage/adapter/IndexedDBAdapter.mjs.map +1 -1
- package/dist/esm/storage/adapter/StorageAdapterBase.d.ts +2 -2
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs +7 -7
- package/dist/esm/storage/adapter/StorageAdapterBase.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs +3 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.mjs.map +1 -1
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs +1 -0
- package/dist/esm/storage/adapter/getDefaultAdapter/index.native.mjs.map +1 -1
- package/dist/esm/storage/adapter/index.d.ts +1 -1
- package/dist/esm/storage/relationship.mjs +1 -0
- package/dist/esm/storage/relationship.mjs.map +1 -1
- package/dist/esm/storage/storage.d.ts +11 -11
- package/dist/esm/storage/storage.mjs +10 -10
- package/dist/esm/storage/storage.mjs.map +1 -1
- package/dist/esm/sync/datastoreConnectivity.d.ts +2 -2
- package/dist/esm/sync/datastoreConnectivity.mjs +0 -3
- package/dist/esm/sync/datastoreConnectivity.mjs.map +1 -1
- package/dist/esm/sync/index.d.ts +3 -3
- package/dist/esm/sync/index.mjs +47 -43
- package/dist/esm/sync/index.mjs.map +1 -1
- package/dist/esm/sync/merger.d.ts +1 -1
- package/dist/esm/sync/merger.mjs +1 -1
- package/dist/esm/sync/merger.mjs.map +1 -1
- package/dist/esm/sync/outbox.d.ts +4 -4
- package/dist/esm/sync/outbox.mjs +19 -17
- package/dist/esm/sync/outbox.mjs.map +1 -1
- package/dist/esm/sync/processors/errorMaps.mjs.map +1 -1
- package/dist/esm/sync/processors/mutation.d.ts +5 -5
- package/dist/esm/sync/processors/mutation.mjs +31 -28
- package/dist/esm/sync/processors/mutation.mjs.map +1 -1
- package/dist/esm/sync/processors/subscription.d.ts +1 -1
- package/dist/esm/sync/processors/subscription.mjs +21 -12
- package/dist/esm/sync/processors/subscription.mjs.map +1 -1
- package/dist/esm/sync/processors/sync.d.ts +3 -3
- package/dist/esm/sync/processors/sync.mjs +13 -9
- package/dist/esm/sync/processors/sync.mjs.map +1 -1
- package/dist/esm/sync/utils.d.ts +11 -13
- package/dist/esm/sync/utils.mjs +20 -21
- package/dist/esm/sync/utils.mjs.map +1 -1
- package/dist/esm/types.d.ts +121 -131
- package/dist/esm/types.mjs +3 -2
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/util.d.ts +5 -5
- package/dist/esm/util.mjs +46 -25
- package/dist/esm/util.mjs.map +1 -1
- package/package.json +74 -73
- package/src/authModeStrategies/multiAuthStrategy.ts +8 -4
- package/src/datastore/datastore.ts +145 -123
- package/src/index.ts +10 -8
- package/src/predicates/index.ts +10 -2
- package/src/predicates/next.ts +39 -28
- package/src/predicates/sort.ts +23 -26
- package/src/storage/adapter/AsyncStorageAdapter.ts +43 -25
- package/src/storage/adapter/AsyncStorageDatabase.ts +18 -10
- package/src/storage/adapter/InMemoryStore.ts +5 -1
- package/src/storage/adapter/IndexedDBAdapter.ts +50 -37
- package/src/storage/adapter/StorageAdapterBase.ts +24 -18
- package/src/storage/adapter/getDefaultAdapter/index.native.ts +1 -0
- package/src/storage/adapter/getDefaultAdapter/index.ts +4 -1
- package/src/storage/adapter/index.ts +2 -2
- package/src/storage/relationship.ts +5 -1
- package/src/storage/storage.ts +38 -30
- package/src/sync/datastoreConnectivity.ts +4 -6
- package/src/sync/index.ts +228 -230
- package/src/sync/merger.ts +4 -3
- package/src/sync/outbox.ts +26 -24
- package/src/sync/processors/errorMaps.ts +5 -0
- package/src/sync/processors/mutation.ts +80 -72
- package/src/sync/processors/subscription.ts +69 -53
- package/src/sync/processors/sync.ts +49 -37
- package/src/sync/utils.ts +60 -41
- package/src/types.ts +165 -165
- package/src/util.ts +89 -53
package/src/storage/storage.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { Observable, filter, map
|
|
3
|
+
import { Observable, Subject, filter, map } from 'rxjs';
|
|
4
4
|
import { Patch } from 'immer';
|
|
5
|
+
import { Mutex } from '@aws-amplify/core/internals/utils';
|
|
6
|
+
import { ConsoleLogger } from '@aws-amplify/core';
|
|
7
|
+
|
|
5
8
|
import { ModelInstanceCreator } from '../datastore/datastore';
|
|
6
9
|
import { ModelPredicateCreator } from '../predicates';
|
|
7
10
|
import {
|
|
8
11
|
InternalSchema,
|
|
12
|
+
InternalSubscriptionMessage,
|
|
9
13
|
ModelInstanceMetadata,
|
|
10
14
|
ModelPredicate,
|
|
11
15
|
NamespaceResolver,
|
|
@@ -16,26 +20,24 @@ import {
|
|
|
16
20
|
PredicatesGroup,
|
|
17
21
|
QueryOne,
|
|
18
22
|
SchemaNamespace,
|
|
19
|
-
InternalSubscriptionMessage,
|
|
20
23
|
SubscriptionMessage,
|
|
21
24
|
isTargetNameAssociation,
|
|
22
25
|
} from '../types';
|
|
23
26
|
import {
|
|
24
|
-
|
|
27
|
+
NAMESPACES,
|
|
25
28
|
STORAGE,
|
|
29
|
+
isModelConstructor,
|
|
26
30
|
validatePredicate,
|
|
27
31
|
valuesEqual,
|
|
28
|
-
NAMESPACES,
|
|
29
32
|
} from '../util';
|
|
30
33
|
import { getIdentifierValue } from '../sync/utils';
|
|
34
|
+
|
|
31
35
|
import { Adapter } from './adapter';
|
|
32
36
|
import getDefaultAdapter from './adapter/getDefaultAdapter';
|
|
33
|
-
import { Mutex } from '@aws-amplify/core/internals/utils';
|
|
34
|
-
import { ConsoleLogger } from '@aws-amplify/core';
|
|
35
37
|
|
|
36
38
|
export type StorageSubscriptionMessage<T extends PersistentModel> =
|
|
37
39
|
InternalSubscriptionMessage<T> & {
|
|
38
|
-
mutator?:
|
|
40
|
+
mutator?: symbol;
|
|
39
41
|
};
|
|
40
42
|
|
|
41
43
|
export type StorageFacade = Omit<Adapter, 'setUp'>;
|
|
@@ -78,6 +80,7 @@ class StorageClass implements StorageFacade {
|
|
|
78
80
|
async init() {
|
|
79
81
|
if (this.initialized !== undefined) {
|
|
80
82
|
await this.initialized;
|
|
83
|
+
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
83
86
|
logger.debug('Starting Storage');
|
|
@@ -85,9 +88,9 @@ class StorageClass implements StorageFacade {
|
|
|
85
88
|
let resolve: (value?: void | PromiseLike<void>) => void;
|
|
86
89
|
let reject: (value?: void | PromiseLike<void>) => void;
|
|
87
90
|
|
|
88
|
-
this.initialized = new Promise<void>((
|
|
89
|
-
resolve =
|
|
90
|
-
reject =
|
|
91
|
+
this.initialized = new Promise<void>((_resolve, _reject) => {
|
|
92
|
+
resolve = _resolve;
|
|
93
|
+
reject = _reject;
|
|
91
94
|
});
|
|
92
95
|
|
|
93
96
|
this.adapter!.setUp(
|
|
@@ -104,7 +107,7 @@ class StorageClass implements StorageFacade {
|
|
|
104
107
|
async save<T extends PersistentModel>(
|
|
105
108
|
model: T,
|
|
106
109
|
condition?: ModelPredicate<T>,
|
|
107
|
-
mutator?:
|
|
110
|
+
mutator?: symbol,
|
|
108
111
|
patchesTuple?: [Patch[], PersistentModel],
|
|
109
112
|
): Promise<[T, OpType.INSERT | OpType.UPDATE][]> {
|
|
110
113
|
await this.init();
|
|
@@ -153,7 +156,7 @@ class StorageClass implements StorageFacade {
|
|
|
153
156
|
|
|
154
157
|
const element = updateMutationInput || savedElement;
|
|
155
158
|
|
|
156
|
-
const modelConstructor = (Object.getPrototypeOf(savedElement) as
|
|
159
|
+
const modelConstructor = (Object.getPrototypeOf(savedElement) as object)
|
|
157
160
|
.constructor as PersistentModelConstructor<T>;
|
|
158
161
|
|
|
159
162
|
this.pushStream.next({
|
|
@@ -175,17 +178,19 @@ class StorageClass implements StorageFacade {
|
|
|
175
178
|
delete<T extends PersistentModel>(
|
|
176
179
|
model: T,
|
|
177
180
|
condition?: ModelPredicate<T>,
|
|
178
|
-
mutator?:
|
|
181
|
+
mutator?: symbol,
|
|
179
182
|
): Promise<[T[], T[]]>;
|
|
183
|
+
|
|
180
184
|
delete<T extends PersistentModel>(
|
|
181
185
|
modelConstructor: PersistentModelConstructor<T>,
|
|
182
186
|
condition?: ModelPredicate<T>,
|
|
183
|
-
mutator?:
|
|
187
|
+
mutator?: symbol,
|
|
184
188
|
): Promise<[T[], T[]]>;
|
|
189
|
+
|
|
185
190
|
async delete<T extends PersistentModel>(
|
|
186
191
|
modelOrModelConstructor: T | PersistentModelConstructor<T>,
|
|
187
192
|
condition?: ModelPredicate<T>,
|
|
188
|
-
mutator?:
|
|
193
|
+
mutator?: symbol,
|
|
189
194
|
): Promise<[T[], T[]]> {
|
|
190
195
|
await this.init();
|
|
191
196
|
if (!this.adapter) {
|
|
@@ -212,6 +217,7 @@ class StorageClass implements StorageFacade {
|
|
|
212
217
|
const modelIds = new Set(
|
|
213
218
|
models.map(model => {
|
|
214
219
|
const modelId = getIdentifierValue(modelDefinition, model);
|
|
220
|
+
|
|
215
221
|
return modelId;
|
|
216
222
|
}),
|
|
217
223
|
);
|
|
@@ -224,7 +230,7 @@ class StorageClass implements StorageFacade {
|
|
|
224
230
|
}
|
|
225
231
|
|
|
226
232
|
deleted.forEach(model => {
|
|
227
|
-
const
|
|
233
|
+
const resolvedModelConstructor = (Object.getPrototypeOf(model) as object)
|
|
228
234
|
.constructor as PersistentModelConstructor<T>;
|
|
229
235
|
|
|
230
236
|
let theCondition: PredicatesGroup<any> | undefined;
|
|
@@ -237,7 +243,7 @@ class StorageClass implements StorageFacade {
|
|
|
237
243
|
}
|
|
238
244
|
|
|
239
245
|
this.pushStream.next({
|
|
240
|
-
model:
|
|
246
|
+
model: resolvedModelConstructor,
|
|
241
247
|
opType: OpType.DELETE,
|
|
242
248
|
element: model,
|
|
243
249
|
mutator,
|
|
@@ -258,7 +264,7 @@ class StorageClass implements StorageFacade {
|
|
|
258
264
|
throw new Error('Storage adapter is missing');
|
|
259
265
|
}
|
|
260
266
|
|
|
261
|
-
return
|
|
267
|
+
return this.adapter.query(modelConstructor, predicate, pagination);
|
|
262
268
|
}
|
|
263
269
|
|
|
264
270
|
async queryOne<T extends PersistentModel>(
|
|
@@ -270,13 +276,13 @@ class StorageClass implements StorageFacade {
|
|
|
270
276
|
throw new Error('Storage adapter is missing');
|
|
271
277
|
}
|
|
272
278
|
|
|
273
|
-
return
|
|
279
|
+
return this.adapter.queryOne(modelConstructor, firstOrLast);
|
|
274
280
|
}
|
|
275
281
|
|
|
276
282
|
observe<T extends PersistentModel>(
|
|
277
283
|
modelConstructor?: PersistentModelConstructor<T> | null,
|
|
278
284
|
predicate?: ModelPredicate<T> | null,
|
|
279
|
-
skipOwn?:
|
|
285
|
+
skipOwn?: symbol,
|
|
280
286
|
): Observable<SubscriptionMessage<T>> {
|
|
281
287
|
const listenToAll = !modelConstructor;
|
|
282
288
|
const { predicates, type } =
|
|
@@ -331,7 +337,7 @@ class StorageClass implements StorageFacade {
|
|
|
331
337
|
async batchSave<T extends PersistentModel>(
|
|
332
338
|
modelConstructor: PersistentModelConstructor<any>,
|
|
333
339
|
items: ModelInstanceMetadata[],
|
|
334
|
-
mutator?:
|
|
340
|
+
mutator?: symbol,
|
|
335
341
|
): Promise<[T, OpType][]> {
|
|
336
342
|
await this.init();
|
|
337
343
|
if (!this.adapter) {
|
|
@@ -367,9 +373,9 @@ class StorageClass implements StorageFacade {
|
|
|
367
373
|
const [patches, source] = patchesTuple!;
|
|
368
374
|
const updatedElement = {};
|
|
369
375
|
// extract array of updated fields from patches
|
|
370
|
-
const updatedFields =
|
|
371
|
-
|
|
372
|
-
);
|
|
376
|
+
const updatedFields = patches.map(
|
|
377
|
+
patch => patch.path && patch.path[0],
|
|
378
|
+
) as string[];
|
|
373
379
|
|
|
374
380
|
// check model def for association and replace with targetName if exists
|
|
375
381
|
const modelConstructor = Object.getPrototypeOf(model)
|
|
@@ -487,13 +493,13 @@ class ExclusiveStorage implements StorageFacade {
|
|
|
487
493
|
}
|
|
488
494
|
|
|
489
495
|
runExclusive<T>(fn: (storage: StorageClass) => Promise<T>) {
|
|
490
|
-
return
|
|
496
|
+
return this.mutex.runExclusive(fn.bind(this, this.storage)) as Promise<T>;
|
|
491
497
|
}
|
|
492
498
|
|
|
493
499
|
async save<T extends PersistentModel>(
|
|
494
500
|
model: T,
|
|
495
501
|
condition?: ModelPredicate<T>,
|
|
496
|
-
mutator?:
|
|
502
|
+
mutator?: symbol,
|
|
497
503
|
patchesTuple?: [Patch[], PersistentModel],
|
|
498
504
|
): Promise<[T, OpType.INSERT | OpType.UPDATE][]> {
|
|
499
505
|
return this.runExclusive<[T, OpType.INSERT | OpType.UPDATE][]>(storage =>
|
|
@@ -504,17 +510,19 @@ class ExclusiveStorage implements StorageFacade {
|
|
|
504
510
|
async delete<T extends PersistentModel>(
|
|
505
511
|
model: T,
|
|
506
512
|
condition?: ModelPredicate<T>,
|
|
507
|
-
mutator?:
|
|
513
|
+
mutator?: symbol,
|
|
508
514
|
): Promise<[T[], T[]]>;
|
|
515
|
+
|
|
509
516
|
async delete<T extends PersistentModel>(
|
|
510
517
|
modelConstructor: PersistentModelConstructor<T>,
|
|
511
518
|
condition?: ModelPredicate<T>,
|
|
512
|
-
mutator?:
|
|
519
|
+
mutator?: symbol,
|
|
513
520
|
): Promise<[T[], T[]]>;
|
|
521
|
+
|
|
514
522
|
async delete<T extends PersistentModel>(
|
|
515
523
|
modelOrModelConstructor: T | PersistentModelConstructor<T>,
|
|
516
524
|
condition?: ModelPredicate<T>,
|
|
517
|
-
mutator?:
|
|
525
|
+
mutator?: symbol,
|
|
518
526
|
): Promise<[T[], T[]]> {
|
|
519
527
|
return this.runExclusive<[T[], T[]]>(storage => {
|
|
520
528
|
if (isModelConstructor(modelOrModelConstructor)) {
|
|
@@ -555,7 +563,7 @@ class ExclusiveStorage implements StorageFacade {
|
|
|
555
563
|
observe<T extends PersistentModel>(
|
|
556
564
|
modelConstructor?: PersistentModelConstructor<T> | null,
|
|
557
565
|
predicate?: ModelPredicate<T> | null,
|
|
558
|
-
skipOwn?:
|
|
566
|
+
skipOwn?: symbol,
|
|
559
567
|
): Observable<SubscriptionMessage<T>> {
|
|
560
568
|
return this.storage.observe(modelConstructor, predicate, skipOwn);
|
|
561
569
|
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { Observable, Observer, SubscriptionLike } from 'rxjs';
|
|
4
|
-
import { ReachabilityMonitor } from './datastoreReachability';
|
|
5
|
-
import { ConsoleLogger } from '@aws-amplify/core';
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
import { ReachabilityMonitor } from './datastoreReachability';
|
|
8
6
|
|
|
9
7
|
const RECONNECTING_IN = 5000; // 5s this may be configurable in the future
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
interface ConnectionStatus {
|
|
12
10
|
// Might add other params in the future
|
|
13
11
|
online: boolean;
|
|
14
|
-
}
|
|
12
|
+
}
|
|
15
13
|
|
|
16
14
|
export default class DataStoreConnectivity {
|
|
17
15
|
private connectionStatus: ConnectionStatus;
|
|
@@ -28,6 +26,7 @@ export default class DataStoreConnectivity {
|
|
|
28
26
|
if (this.observer) {
|
|
29
27
|
throw new Error('Subscriber already exists');
|
|
30
28
|
}
|
|
29
|
+
|
|
31
30
|
return new Observable(observer => {
|
|
32
31
|
this.observer = observer;
|
|
33
32
|
// Will be used to forward socket connection changes, enhancing Reachability
|
|
@@ -57,7 +56,6 @@ export default class DataStoreConnectivity {
|
|
|
57
56
|
// for consistency with other background processors.
|
|
58
57
|
async stop() {
|
|
59
58
|
this.unsubscribe();
|
|
60
|
-
return;
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
socketDisconnected() {
|