@nymphjs/client 1.0.0-beta.31 → 1.0.0-beta.32
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/CHANGELOG.md +6 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/lib/PubSub.d.ts +5 -3
- package/lib/PubSub.js +34 -9
- package/lib/PubSub.js.map +1 -1
- package/package.json +2 -2
- package/src/PubSub.ts +58 -13
package/lib/PubSub.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Nymph from './Nymph';
|
|
2
|
-
import { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
-
import { EntityConstructor, EntityInterface } from './Entity.types';
|
|
4
|
-
import { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubErrorCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types';
|
|
2
|
+
import type { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
+
import type { EntityConstructor, EntityInterface } from './Entity.types';
|
|
4
|
+
import type { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubErrorCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types';
|
|
5
5
|
export default class PubSub {
|
|
6
6
|
private nymph;
|
|
7
7
|
private authToken;
|
|
@@ -37,6 +37,8 @@ export default class PubSub {
|
|
|
37
37
|
private _onclose;
|
|
38
38
|
private _send;
|
|
39
39
|
isConnectionOpen(): boolean;
|
|
40
|
+
isConnectionConnecting(): boolean;
|
|
41
|
+
isConnection(): boolean;
|
|
40
42
|
private _subscribeQuery;
|
|
41
43
|
private _subscribeUID;
|
|
42
44
|
private _sendQuery;
|
package/lib/PubSub.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PubSubSubscription = void 0;
|
|
4
4
|
const Nymph_1 = require("./Nymph");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
|
+
const HttpRequester_1 = require("./HttpRequester");
|
|
6
7
|
class PubSub {
|
|
7
8
|
constructor(nymphOptions, nymph) {
|
|
8
9
|
this.authToken = null;
|
|
@@ -32,7 +33,6 @@ class PubSub {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
subscribeEntities(options, ...selectors) {
|
|
35
|
-
const promise = this.nymph.getEntities(options, ...selectors);
|
|
36
36
|
const query = [
|
|
37
37
|
(0, utils_1.entityConstructorsToClassNames)(options),
|
|
38
38
|
...(0, utils_1.entityConstructorsToClassNames)(selectors),
|
|
@@ -40,7 +40,9 @@ class PubSub {
|
|
|
40
40
|
const jsonQuery = JSON.stringify(query);
|
|
41
41
|
const subscribe = (resolve, reject, count) => {
|
|
42
42
|
const callbacks = [resolve, reject, count];
|
|
43
|
-
|
|
43
|
+
if (!this.isConnection()) {
|
|
44
|
+
this.nymph.getEntities(options, ...selectors).then(resolve, reject);
|
|
45
|
+
}
|
|
44
46
|
this._subscribeQuery(jsonQuery, callbacks);
|
|
45
47
|
return new PubSubSubscription(jsonQuery, callbacks, () => {
|
|
46
48
|
this._unsubscribeQuery(jsonQuery, callbacks);
|
|
@@ -49,7 +51,6 @@ class PubSub {
|
|
|
49
51
|
return subscribe;
|
|
50
52
|
}
|
|
51
53
|
subscribeEntity(options, ...selectors) {
|
|
52
|
-
const promise = this.nymph.getEntity(options, ...selectors);
|
|
53
54
|
const query = [
|
|
54
55
|
{ ...(0, utils_1.entityConstructorsToClassNames)(options), limit: 1 },
|
|
55
56
|
...(0, utils_1.entityConstructorsToClassNames)(selectors),
|
|
@@ -69,7 +70,9 @@ class PubSub {
|
|
|
69
70
|
}
|
|
70
71
|
};
|
|
71
72
|
const callbacks = [newResolve, reject, count];
|
|
72
|
-
|
|
73
|
+
if (!this.isConnection()) {
|
|
74
|
+
this.nymph.getEntity(options, ...selectors).then(resolve, reject);
|
|
75
|
+
}
|
|
73
76
|
this._subscribeQuery(jsonQuery, callbacks);
|
|
74
77
|
return new PubSubSubscription(jsonQuery, callbacks, () => {
|
|
75
78
|
this._unsubscribeQuery(jsonQuery, callbacks);
|
|
@@ -78,10 +81,11 @@ class PubSub {
|
|
|
78
81
|
return subscribe;
|
|
79
82
|
}
|
|
80
83
|
subscribeUID(name) {
|
|
81
|
-
const promise = this.nymph.getUID(name);
|
|
82
84
|
const subscribe = (resolve, reject, count) => {
|
|
83
85
|
const callbacks = [resolve, reject, count];
|
|
84
|
-
|
|
86
|
+
if (!this.isConnection()) {
|
|
87
|
+
this.nymph.getUID(name).then(resolve, reject);
|
|
88
|
+
}
|
|
85
89
|
this._subscribeUID(name, callbacks);
|
|
86
90
|
return {
|
|
87
91
|
unsubscribe: () => {
|
|
@@ -222,6 +226,7 @@ class PubSub {
|
|
|
222
226
|
_onmessage(e) {
|
|
223
227
|
let data = JSON.parse(e.data);
|
|
224
228
|
let subs = [];
|
|
229
|
+
let set = 'set' in data && data.set;
|
|
225
230
|
let count = 'count' in data;
|
|
226
231
|
let error = 'error' in data;
|
|
227
232
|
if (data.hasOwnProperty('query') &&
|
|
@@ -231,7 +236,9 @@ class PubSub {
|
|
|
231
236
|
for (let i = 0; i < subs.length; i++) {
|
|
232
237
|
const callback = subs[i][0];
|
|
233
238
|
if (typeof callback === 'function') {
|
|
234
|
-
callback(
|
|
239
|
+
callback(set
|
|
240
|
+
? data.data.map((e) => this.nymph.initEntity(e))
|
|
241
|
+
: data);
|
|
235
242
|
}
|
|
236
243
|
}
|
|
237
244
|
}
|
|
@@ -242,8 +249,19 @@ class PubSub {
|
|
|
242
249
|
if (!count && !error) {
|
|
243
250
|
for (let i = 0; i < subs.length; i++) {
|
|
244
251
|
const callback = subs[i][0];
|
|
245
|
-
|
|
246
|
-
|
|
252
|
+
const errCallback = subs[i][1];
|
|
253
|
+
if (set && data.data == null) {
|
|
254
|
+
if (typeof errCallback === 'function') {
|
|
255
|
+
errCallback(new HttpRequester_1.ClientError({ status: 404, statusText: 'Not Found' }, { textStatus: 'Not Found' }));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else if (typeof callback === 'function') {
|
|
259
|
+
if (set) {
|
|
260
|
+
callback(data.data);
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
callback(data.value ?? null, data.event);
|
|
264
|
+
}
|
|
247
265
|
}
|
|
248
266
|
}
|
|
249
267
|
}
|
|
@@ -301,6 +319,13 @@ class PubSub {
|
|
|
301
319
|
isConnectionOpen() {
|
|
302
320
|
return !!(this.connection && this.connection.readyState === this.WebSocket.OPEN);
|
|
303
321
|
}
|
|
322
|
+
isConnectionConnecting() {
|
|
323
|
+
return !!(this.connection &&
|
|
324
|
+
this.connection.readyState === this.WebSocket.CONNECTING);
|
|
325
|
+
}
|
|
326
|
+
isConnection() {
|
|
327
|
+
return this.isConnectionOpen() || this.isConnectionConnecting();
|
|
328
|
+
}
|
|
304
329
|
_subscribeQuery(query, callbacks) {
|
|
305
330
|
let isNewSubscription = false;
|
|
306
331
|
if (!this.subscriptions.queries.hasOwnProperty(query)) {
|
package/lib/PubSub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../src/PubSub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../src/PubSub.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/client",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.32",
|
|
4
4
|
"description": "NymphJS - Client",
|
|
5
5
|
"browser": "dist/index.js",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"webpack": "^5.82.0",
|
|
48
48
|
"webpack-cli": "^5.0.2"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "6433245cd0c79c8a0a2240dd3361661fba3dcbe1"
|
|
51
51
|
}
|
package/src/PubSub.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import Nymph, { InvalidRequestError } from './Nymph';
|
|
2
|
-
import { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import type { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
+
import type {
|
|
4
|
+
EntityConstructor,
|
|
5
|
+
EntityInterface,
|
|
6
|
+
EntityJson,
|
|
7
|
+
} from './Entity.types';
|
|
8
|
+
import type {
|
|
5
9
|
PubSubCallbacks,
|
|
6
10
|
PubSubConnectCallback,
|
|
7
11
|
PubSubCountCallback,
|
|
@@ -14,6 +18,7 @@ import {
|
|
|
14
18
|
PubSubUpdate,
|
|
15
19
|
} from './PubSub.types';
|
|
16
20
|
import { entityConstructorsToClassNames } from './utils';
|
|
21
|
+
import { ClientError } from './HttpRequester';
|
|
17
22
|
|
|
18
23
|
export default class PubSub {
|
|
19
24
|
private nymph: Nymph;
|
|
@@ -61,6 +66,8 @@ export default class PubSub {
|
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
|
|
69
|
+
// TODO: return: 'guid' doesn't work here because the server always returns
|
|
70
|
+
// entities.
|
|
64
71
|
public subscribeEntities<T extends EntityConstructor = EntityConstructor>(
|
|
65
72
|
options: Options<T> & { return: 'guid' },
|
|
66
73
|
...selectors: Selector[]
|
|
@@ -75,7 +82,6 @@ export default class PubSub {
|
|
|
75
82
|
): PubSubSubscribable<
|
|
76
83
|
PubSubUpdate<ReturnType<T['factorySync']>[]> | PubSubUpdate<string[]>
|
|
77
84
|
> {
|
|
78
|
-
const promise = this.nymph.getEntities(options, ...selectors);
|
|
79
85
|
const query = [
|
|
80
86
|
entityConstructorsToClassNames(options),
|
|
81
87
|
...entityConstructorsToClassNames(selectors),
|
|
@@ -95,7 +101,10 @@ export default class PubSub {
|
|
|
95
101
|
PubSubUpdate<ReturnType<T['factorySync']>[]> | PubSubUpdate<string[]>
|
|
96
102
|
> = [resolve, reject, count];
|
|
97
103
|
|
|
98
|
-
|
|
104
|
+
if (!this.isConnection()) {
|
|
105
|
+
// Fall back to a regular query if we're not connected.
|
|
106
|
+
this.nymph.getEntities(options, ...selectors).then(resolve, reject);
|
|
107
|
+
}
|
|
99
108
|
|
|
100
109
|
this._subscribeQuery(jsonQuery, callbacks);
|
|
101
110
|
return new PubSubSubscription(jsonQuery, callbacks, () => {
|
|
@@ -105,6 +114,8 @@ export default class PubSub {
|
|
|
105
114
|
return subscribe;
|
|
106
115
|
}
|
|
107
116
|
|
|
117
|
+
// TODO: return: 'guid' doesn't work here because the server always returns
|
|
118
|
+
// entities.
|
|
108
119
|
public subscribeEntity<T extends EntityConstructor = EntityConstructor>(
|
|
109
120
|
options: Options<T> & { return: 'guid' },
|
|
110
121
|
...selectors: Selector[]
|
|
@@ -120,7 +131,6 @@ export default class PubSub {
|
|
|
120
131
|
| PubSubUpdate<ReturnType<T['factorySync']> | null>
|
|
121
132
|
| PubSubUpdate<string | null>
|
|
122
133
|
> {
|
|
123
|
-
const promise = this.nymph.getEntity(options, ...selectors);
|
|
124
134
|
const query = [
|
|
125
135
|
{ ...entityConstructorsToClassNames(options), limit: 1 },
|
|
126
136
|
...entityConstructorsToClassNames(selectors),
|
|
@@ -152,7 +162,10 @@ export default class PubSub {
|
|
|
152
162
|
| PubSubUpdate<string | null>
|
|
153
163
|
> = [newResolve, reject, count];
|
|
154
164
|
|
|
155
|
-
|
|
165
|
+
if (!this.isConnection()) {
|
|
166
|
+
// Fall back to a regular query if we're not connected.
|
|
167
|
+
this.nymph.getEntity(options, ...selectors).then(resolve, reject);
|
|
168
|
+
}
|
|
156
169
|
|
|
157
170
|
this._subscribeQuery(jsonQuery, callbacks);
|
|
158
171
|
return new PubSubSubscription(jsonQuery, callbacks, () => {
|
|
@@ -163,7 +176,6 @@ export default class PubSub {
|
|
|
163
176
|
}
|
|
164
177
|
|
|
165
178
|
public subscribeUID(name: string) {
|
|
166
|
-
const promise = this.nymph.getUID(name);
|
|
167
179
|
const subscribe = (
|
|
168
180
|
resolve?: PubSubResolveCallback<number> | undefined,
|
|
169
181
|
reject?: PubSubRejectCallback | undefined,
|
|
@@ -171,7 +183,10 @@ export default class PubSub {
|
|
|
171
183
|
) => {
|
|
172
184
|
const callbacks: PubSubCallbacks<number> = [resolve, reject, count];
|
|
173
185
|
|
|
174
|
-
|
|
186
|
+
if (!this.isConnection()) {
|
|
187
|
+
// Fall back to a regular query if we're not connected.
|
|
188
|
+
this.nymph.getUID(name).then(resolve, reject);
|
|
189
|
+
}
|
|
175
190
|
|
|
176
191
|
this._subscribeUID(name, callbacks);
|
|
177
192
|
return {
|
|
@@ -348,6 +363,7 @@ export default class PubSub {
|
|
|
348
363
|
private _onmessage(e: WebSocketEventMap['message']) {
|
|
349
364
|
let data = JSON.parse(e.data);
|
|
350
365
|
let subs: PubSubCallbacks<any>[] = [];
|
|
366
|
+
let set = 'set' in data && data.set;
|
|
351
367
|
let count = 'count' in data;
|
|
352
368
|
let error = 'error' in data;
|
|
353
369
|
if (
|
|
@@ -359,7 +375,11 @@ export default class PubSub {
|
|
|
359
375
|
for (let i = 0; i < subs.length; i++) {
|
|
360
376
|
const callback = subs[i][0];
|
|
361
377
|
if (typeof callback === 'function') {
|
|
362
|
-
callback(
|
|
378
|
+
callback(
|
|
379
|
+
set
|
|
380
|
+
? data.data.map((e: EntityJson) => this.nymph.initEntity(e))
|
|
381
|
+
: data
|
|
382
|
+
);
|
|
363
383
|
}
|
|
364
384
|
}
|
|
365
385
|
}
|
|
@@ -371,8 +391,22 @@ export default class PubSub {
|
|
|
371
391
|
if (!count && !error) {
|
|
372
392
|
for (let i = 0; i < subs.length; i++) {
|
|
373
393
|
const callback = subs[i][0];
|
|
374
|
-
|
|
375
|
-
|
|
394
|
+
const errCallback = subs[i][1];
|
|
395
|
+
if (set && data.data == null) {
|
|
396
|
+
if (typeof errCallback === 'function') {
|
|
397
|
+
errCallback(
|
|
398
|
+
new ClientError(
|
|
399
|
+
{ status: 404, statusText: 'Not Found' } as Response,
|
|
400
|
+
{ textStatus: 'Not Found' }
|
|
401
|
+
)
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
} else if (typeof callback === 'function') {
|
|
405
|
+
if (set) {
|
|
406
|
+
callback(data.data);
|
|
407
|
+
} else {
|
|
408
|
+
callback(data.value ?? null, data.event);
|
|
409
|
+
}
|
|
376
410
|
}
|
|
377
411
|
}
|
|
378
412
|
}
|
|
@@ -437,6 +471,17 @@ export default class PubSub {
|
|
|
437
471
|
);
|
|
438
472
|
}
|
|
439
473
|
|
|
474
|
+
public isConnectionConnecting() {
|
|
475
|
+
return !!(
|
|
476
|
+
this.connection &&
|
|
477
|
+
this.connection.readyState === this.WebSocket.CONNECTING
|
|
478
|
+
);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
public isConnection() {
|
|
482
|
+
return this.isConnectionOpen() || this.isConnectionConnecting();
|
|
483
|
+
}
|
|
484
|
+
|
|
440
485
|
private _subscribeQuery(query: string, callbacks: PubSubCallbacks<any>) {
|
|
441
486
|
let isNewSubscription = false;
|
|
442
487
|
if (!this.subscriptions.queries.hasOwnProperty(query)) {
|
|
@@ -622,7 +667,7 @@ export default class PubSub {
|
|
|
622
667
|
// Now we must remove the deleted ones.
|
|
623
668
|
remove.sort(function (a, b) {
|
|
624
669
|
// Sort backwards so we can remove in reverse order. (Preserves
|
|
625
|
-
//
|
|
670
|
+
// indexes.)
|
|
626
671
|
if (a > b) return -1;
|
|
627
672
|
if (a < b) return 1;
|
|
628
673
|
return 0;
|