@nymphjs/client 1.0.0-beta.1 → 1.0.0-beta.100
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 +456 -0
- package/README.md +7 -7
- package/asyncitertest.js +53 -0
- package/dist/Entity.d.ts +156 -0
- package/dist/Entity.js +598 -0
- package/dist/Entity.js.map +1 -0
- package/dist/Entity.types.d.ts +218 -0
- package/dist/Entity.types.js +2 -0
- package/dist/Entity.types.js.map +1 -0
- package/dist/EntityWeakCache.d.ts +6 -0
- package/dist/EntityWeakCache.js +27 -0
- package/dist/EntityWeakCache.js.map +1 -0
- package/dist/HttpRequester.d.ts +78 -0
- package/dist/HttpRequester.js +365 -0
- package/dist/HttpRequester.js.map +1 -0
- package/dist/Nymph.d.ts +116 -0
- package/dist/Nymph.js +459 -0
- package/dist/Nymph.js.map +1 -0
- package/dist/Nymph.types.d.ts +177 -0
- package/dist/Nymph.types.js +2 -0
- package/dist/Nymph.types.js.map +1 -0
- package/dist/PubSub.d.ts +63 -0
- package/dist/PubSub.js +599 -0
- package/dist/PubSub.js.map +1 -0
- package/dist/PubSub.types.d.ts +31 -0
- package/dist/PubSub.types.js +2 -0
- package/dist/PubSub.types.js.map +1 -0
- package/dist/entityRefresh.d.ts +5 -0
- package/dist/entityRefresh.js +75 -0
- package/dist/entityRefresh.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +8 -0
- package/dist/utils.js +93 -0
- package/dist/utils.js.map +1 -0
- package/jest.config.js +11 -2
- package/lib/Entity.d.ts +112 -8
- package/lib/Entity.js +159 -77
- package/lib/Entity.js.map +1 -1
- package/lib/Entity.types.d.ts +144 -9
- package/lib/EntityWeakCache.js +3 -2
- package/lib/EntityWeakCache.js.map +1 -1
- package/lib/HttpRequester.d.ts +44 -8
- package/lib/HttpRequester.js +236 -21
- package/lib/HttpRequester.js.map +1 -1
- package/lib/Nymph.d.ts +43 -11
- package/lib/Nymph.js +102 -19
- package/lib/Nymph.js.map +1 -1
- package/lib/Nymph.types.d.ts +73 -1
- package/lib/PubSub.d.ts +15 -9
- package/lib/PubSub.js +148 -87
- package/lib/PubSub.js.map +1 -1
- package/lib/PubSub.types.d.ts +6 -1
- package/lib/entityRefresh.js +16 -0
- package/lib/entityRefresh.js.map +1 -1
- package/lib/utils.js +11 -0
- package/lib/utils.js.map +1 -1
- package/package.json +23 -27
- package/src/Entity.ts +171 -108
- package/src/Entity.types.ts +29 -47
- package/src/EntityWeakCache.ts +8 -6
- package/src/HttpRequester.ts +308 -35
- package/src/Nymph.ts +212 -96
- package/src/Nymph.types.ts +51 -2
- package/src/PubSub.ts +214 -141
- package/src/PubSub.types.ts +10 -5
- package/src/entityRefresh.ts +6 -6
- package/src/index.ts +10 -10
- package/src/utils.ts +12 -5
- package/tsconfig.json +6 -4
- package/typedoc.json +4 -0
- package/dist/index.js.LICENSE.txt +0 -8
- package/webpack.config.js +0 -28
package/lib/Nymph.js
CHANGED
|
@@ -11,22 +11,36 @@ const utils_1 = require("./utils");
|
|
|
11
11
|
let requester;
|
|
12
12
|
class Nymph {
|
|
13
13
|
constructor(NymphOptions) {
|
|
14
|
+
/**
|
|
15
|
+
* And optional PubSub client instance.
|
|
16
|
+
*/
|
|
14
17
|
this.pubsub = undefined;
|
|
18
|
+
/**
|
|
19
|
+
* A simple map of names to Entity classes.
|
|
20
|
+
*/
|
|
15
21
|
this.entityClasses = {};
|
|
16
|
-
this.Entity = Entity_1.default;
|
|
17
22
|
this.requestCallbacks = [];
|
|
18
23
|
this.responseCallbacks = [];
|
|
19
24
|
this.restUrl = '';
|
|
20
25
|
this.weakCache = false;
|
|
26
|
+
/**
|
|
27
|
+
* Headers that will be sent with every request.
|
|
28
|
+
*
|
|
29
|
+
* These are used by Tilmeld for authentication.
|
|
30
|
+
*/
|
|
31
|
+
this.headers = {};
|
|
32
|
+
/**
|
|
33
|
+
* The entity cache.
|
|
34
|
+
*/
|
|
21
35
|
this.cache = new EntityWeakCache_1.default();
|
|
22
36
|
this.restUrl = NymphOptions.restUrl;
|
|
37
|
+
// @ts-ignore TS doesn't know about WeakRef.
|
|
23
38
|
this.weakCache = !!NymphOptions.weakCache && typeof WeakRef !== 'undefined';
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
NymphEntity.nymph = this;
|
|
27
|
-
this.Entity = NymphEntity;
|
|
28
|
-
this.addEntityClass(NymphEntity);
|
|
39
|
+
this.Entity = this.addEntityClass(Entity_1.default);
|
|
29
40
|
requester = new HttpRequester_1.default('fetch' in NymphOptions ? NymphOptions.fetch : undefined);
|
|
41
|
+
if ('renewTokens' in NymphOptions && !NymphOptions.renewTokens) {
|
|
42
|
+
this.headers['X-Tilmeld-Token-Renewal'] = 'off';
|
|
43
|
+
}
|
|
30
44
|
requester.on('request', (_requester, url, options) => {
|
|
31
45
|
for (let i = 0; i < this.requestCallbacks.length; i++) {
|
|
32
46
|
this.requestCallbacks[i] && this.requestCallbacks[i](url, options);
|
|
@@ -38,21 +52,44 @@ class Nymph {
|
|
|
38
52
|
}
|
|
39
53
|
});
|
|
40
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Add your class to this instance.
|
|
57
|
+
*
|
|
58
|
+
* This will create a class that extends your class within this instance of
|
|
59
|
+
* Nymph and return it. You can then use this class's constructor and methods,
|
|
60
|
+
* which will use this instance of Nymph.
|
|
61
|
+
*
|
|
62
|
+
* Because this creates a subclass, don't use the class
|
|
63
|
+
* returned from `getEntityClass` to check with `instanceof`.
|
|
64
|
+
*/
|
|
41
65
|
addEntityClass(entityClass) {
|
|
42
|
-
|
|
43
|
-
entityClass
|
|
66
|
+
const nymph = this;
|
|
67
|
+
class NymphEntity extends entityClass {
|
|
68
|
+
constructor(...args) {
|
|
69
|
+
super(...args);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
NymphEntity.nymph = nymph;
|
|
73
|
+
this.entityClasses[entityClass.class] = NymphEntity;
|
|
74
|
+
return NymphEntity;
|
|
44
75
|
}
|
|
45
76
|
getEntityClass(className) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
77
|
+
let key = null;
|
|
78
|
+
if (typeof className === 'string') {
|
|
79
|
+
key = className;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
key = className.class;
|
|
83
|
+
}
|
|
84
|
+
if (key in this.entityClasses) {
|
|
85
|
+
return this.entityClasses[key];
|
|
50
86
|
}
|
|
51
|
-
throw new ClassNotAvailableError(
|
|
87
|
+
throw new ClassNotAvailableError('Tried to use class: ' + key);
|
|
52
88
|
}
|
|
53
89
|
async newUID(name) {
|
|
54
90
|
const data = await requester.POST({
|
|
55
91
|
url: this.restUrl,
|
|
92
|
+
headers: { ...this.headers },
|
|
56
93
|
dataType: 'text',
|
|
57
94
|
data: { action: 'uid', data: name },
|
|
58
95
|
});
|
|
@@ -61,6 +98,7 @@ class Nymph {
|
|
|
61
98
|
async setUID(name, value) {
|
|
62
99
|
return await requester.PUT({
|
|
63
100
|
url: this.restUrl,
|
|
101
|
+
headers: { ...this.headers },
|
|
64
102
|
dataType: 'json',
|
|
65
103
|
data: { action: 'uid', data: { name, value } },
|
|
66
104
|
});
|
|
@@ -68,6 +106,7 @@ class Nymph {
|
|
|
68
106
|
async getUID(name) {
|
|
69
107
|
const data = await requester.GET({
|
|
70
108
|
url: this.restUrl,
|
|
109
|
+
headers: { ...this.headers },
|
|
71
110
|
dataType: 'text',
|
|
72
111
|
data: { action: 'uid', data: name },
|
|
73
112
|
});
|
|
@@ -76,6 +115,7 @@ class Nymph {
|
|
|
76
115
|
async deleteUID(name) {
|
|
77
116
|
return await requester.DELETE({
|
|
78
117
|
url: this.restUrl,
|
|
118
|
+
headers: { ...this.headers },
|
|
79
119
|
dataType: 'text',
|
|
80
120
|
data: { action: 'uid', data: name },
|
|
81
121
|
});
|
|
@@ -121,6 +161,7 @@ class Nymph {
|
|
|
121
161
|
async requestWithMethod(entity, method, data, plural) {
|
|
122
162
|
const response = await requester[method]({
|
|
123
163
|
url: this.restUrl,
|
|
164
|
+
headers: { ...this.headers },
|
|
124
165
|
dataType: 'json',
|
|
125
166
|
data: {
|
|
126
167
|
action: plural ? 'entities' : 'entity',
|
|
@@ -140,6 +181,7 @@ class Nymph {
|
|
|
140
181
|
throw new Error('Server error');
|
|
141
182
|
}
|
|
142
183
|
async getEntity(options, ...selectors) {
|
|
184
|
+
// @ts-ignore: Implementation signatures of overloads are not externally visible.
|
|
143
185
|
const data = (await this.getEntityData(options, ...selectors));
|
|
144
186
|
if (options.return && options.return === 'count') {
|
|
145
187
|
return Number(data ?? 0);
|
|
@@ -155,14 +197,16 @@ class Nymph {
|
|
|
155
197
|
return null;
|
|
156
198
|
}
|
|
157
199
|
async getEntityData(options, ...selectors) {
|
|
158
|
-
if (options.class
|
|
200
|
+
if (options.class instanceof Entity_1.default) {
|
|
159
201
|
throw new InvalidRequestError("You can't make REST requests with the base Entity class.");
|
|
160
202
|
}
|
|
203
|
+
// Set up options and selectors.
|
|
161
204
|
if (typeof selectors[0] === 'string') {
|
|
162
205
|
selectors = [{ type: '&', guid: selectors[0] }];
|
|
163
206
|
}
|
|
164
207
|
const data = await requester.GET({
|
|
165
208
|
url: this.restUrl,
|
|
209
|
+
headers: { ...this.headers },
|
|
166
210
|
dataType: 'json',
|
|
167
211
|
data: {
|
|
168
212
|
action: 'entity',
|
|
@@ -180,6 +224,7 @@ class Nymph {
|
|
|
180
224
|
async getEntities(options, ...selectors) {
|
|
181
225
|
const data = await requester.GET({
|
|
182
226
|
url: this.restUrl,
|
|
227
|
+
headers: { ...this.headers },
|
|
183
228
|
dataType: 'json',
|
|
184
229
|
data: {
|
|
185
230
|
action: 'entities',
|
|
@@ -204,6 +249,7 @@ class Nymph {
|
|
|
204
249
|
}
|
|
205
250
|
let entity = EntityClass.factorySync();
|
|
206
251
|
if (this.weakCache) {
|
|
252
|
+
// Try to get it from cache.
|
|
207
253
|
const entityFromCache = this.cache.get(EntityClass, entityJSON.guid || '');
|
|
208
254
|
if (entityFromCache != null) {
|
|
209
255
|
entity = entityFromCache;
|
|
@@ -225,10 +271,10 @@ class Nymph {
|
|
|
225
271
|
}
|
|
226
272
|
initEntitiesFromData(item) {
|
|
227
273
|
if (Array.isArray(item)) {
|
|
274
|
+
// Recurse into lower arrays.
|
|
228
275
|
return item.map((entry) => this.initEntitiesFromData(entry));
|
|
229
276
|
}
|
|
230
|
-
else if (item instanceof Object &&
|
|
231
|
-
!(item instanceof this.getEntityClass('Entity'))) {
|
|
277
|
+
else if (item instanceof Object && !(item instanceof Entity_1.default)) {
|
|
232
278
|
if (item.hasOwnProperty('class') &&
|
|
233
279
|
item.hasOwnProperty('guid') &&
|
|
234
280
|
item.hasOwnProperty('cdate') &&
|
|
@@ -240,15 +286,18 @@ class Nymph {
|
|
|
240
286
|
}
|
|
241
287
|
else {
|
|
242
288
|
for (let [key, value] of Object.entries(item)) {
|
|
289
|
+
// @ts-ignore: Key comes from the object. It's fine.
|
|
243
290
|
item[key] = this.initEntitiesFromData(value);
|
|
244
291
|
}
|
|
245
292
|
}
|
|
246
293
|
}
|
|
294
|
+
// Not an entity or array, just return it.
|
|
247
295
|
return item;
|
|
248
296
|
}
|
|
249
297
|
async deleteEntity(entity, _plural = false) {
|
|
250
298
|
return await requester.DELETE({
|
|
251
299
|
url: this.restUrl,
|
|
300
|
+
headers: { ...this.headers },
|
|
252
301
|
dataType: 'json',
|
|
253
302
|
data: {
|
|
254
303
|
action: _plural ? 'entities' : 'entity',
|
|
@@ -270,6 +319,7 @@ class Nymph {
|
|
|
270
319
|
async serverCall(entity, method, params, stateless = false) {
|
|
271
320
|
const data = await requester.POST({
|
|
272
321
|
url: this.restUrl,
|
|
322
|
+
headers: { ...this.headers },
|
|
273
323
|
dataType: 'json',
|
|
274
324
|
data: {
|
|
275
325
|
action: 'method',
|
|
@@ -289,6 +339,7 @@ class Nymph {
|
|
|
289
339
|
async serverCallStatic(className, method, params) {
|
|
290
340
|
const data = await requester.POST({
|
|
291
341
|
url: this.restUrl,
|
|
342
|
+
headers: { ...this.headers },
|
|
292
343
|
dataType: 'json',
|
|
293
344
|
data: {
|
|
294
345
|
action: 'method',
|
|
@@ -302,11 +353,44 @@ class Nymph {
|
|
|
302
353
|
});
|
|
303
354
|
return this.initEntitiesFromData(data);
|
|
304
355
|
}
|
|
356
|
+
async serverCallStaticIterator(className, method, params) {
|
|
357
|
+
const iterable = await requester.POST_ITERATOR({
|
|
358
|
+
url: this.restUrl,
|
|
359
|
+
headers: { ...this.headers },
|
|
360
|
+
dataType: 'json',
|
|
361
|
+
data: {
|
|
362
|
+
action: 'method',
|
|
363
|
+
data: {
|
|
364
|
+
class: className,
|
|
365
|
+
static: true,
|
|
366
|
+
method: method,
|
|
367
|
+
iterator: true,
|
|
368
|
+
params: (0, utils_1.entitiesToReferences)((0, utils_1.entityConstructorsToClassNames)(params)),
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
});
|
|
372
|
+
const that = this;
|
|
373
|
+
const iterator = {
|
|
374
|
+
abortController: iterable.abortController,
|
|
375
|
+
async *[Symbol.asyncIterator]() {
|
|
376
|
+
for await (let response of iterable) {
|
|
377
|
+
if (response instanceof Error) {
|
|
378
|
+
yield response;
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
yield that.initEntitiesFromData(response);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
};
|
|
386
|
+
return iterator;
|
|
387
|
+
}
|
|
305
388
|
on(event, callback) {
|
|
306
389
|
const prop = (event + 'Callbacks');
|
|
307
390
|
if (!(prop in this)) {
|
|
308
391
|
throw new Error('Invalid event type.');
|
|
309
392
|
}
|
|
393
|
+
// @ts-ignore: The callback should always be the right type here.
|
|
310
394
|
this[prop].push(callback);
|
|
311
395
|
return () => this.off(event, callback);
|
|
312
396
|
}
|
|
@@ -315,15 +399,14 @@ class Nymph {
|
|
|
315
399
|
if (!(prop in this)) {
|
|
316
400
|
return false;
|
|
317
401
|
}
|
|
402
|
+
// @ts-ignore: The callback should always be the right type here.
|
|
318
403
|
const i = this[prop].indexOf(callback);
|
|
319
404
|
if (i > -1) {
|
|
405
|
+
// @ts-ignore: The callback should always be the right type here.
|
|
320
406
|
this[prop].splice(i, 1);
|
|
321
407
|
}
|
|
322
408
|
return true;
|
|
323
409
|
}
|
|
324
|
-
setXsrfToken(token) {
|
|
325
|
-
requester.setXsrfToken(token);
|
|
326
|
-
}
|
|
327
410
|
}
|
|
328
411
|
exports.default = Nymph;
|
|
329
412
|
class ClassNotAvailableError extends Error {
|
package/lib/Nymph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
|
package/lib/Nymph.types.d.ts
CHANGED
|
@@ -1,22 +1,94 @@
|
|
|
1
1
|
import { EntityConstructor, EntityInterface } from './Entity.types';
|
|
2
2
|
export type NymphOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* The URL of your Nymph REST server.
|
|
5
|
+
*/
|
|
3
6
|
restUrl: string;
|
|
7
|
+
/**
|
|
8
|
+
* The URL of your Nymph PubSub server.
|
|
9
|
+
*/
|
|
4
10
|
pubsubUrl?: string;
|
|
11
|
+
/**
|
|
12
|
+
* A fetch implementation.
|
|
13
|
+
*/
|
|
5
14
|
fetch?: WindowOrWorkerGlobalScope['fetch'];
|
|
15
|
+
/**
|
|
16
|
+
* A WebSocket implementation.
|
|
17
|
+
*/
|
|
6
18
|
WebSocket?: typeof WebSocket;
|
|
19
|
+
/**
|
|
20
|
+
* Whether to not output status messages to the console.
|
|
21
|
+
*/
|
|
7
22
|
noConsole?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Don't automatically try to connect to PubSub server.
|
|
25
|
+
*/
|
|
26
|
+
noAutoconnect?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Use a WeakRef based cache of entities.
|
|
29
|
+
*
|
|
30
|
+
* This ensures all entities returned are the same instance if they have the
|
|
31
|
+
* same class and GUID. This also means that whenever an entity is returned
|
|
32
|
+
* from the server, the single instance in memory will be refreshed. This
|
|
33
|
+
* could have annoying results, like destroying dirty data (the dreaded
|
|
34
|
+
* triple-D).
|
|
35
|
+
*
|
|
36
|
+
* This could also be a potential source of memory leaks. Although the
|
|
37
|
+
* entities themselves are referenced weakly so they get garbage collected,
|
|
38
|
+
* the GUID used as a key and the WeakRef object itself are not weak
|
|
39
|
+
* references, so not destroyed when the instance is garbage collected.
|
|
40
|
+
*
|
|
41
|
+
* However, even with these caveats, this might help you if you have a big app
|
|
42
|
+
* with the same entities stored in several different places in memory. This
|
|
43
|
+
* can help to synchronize them correctly and avoid data conflicts.
|
|
44
|
+
*/
|
|
8
45
|
weakCache?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to renew tokens when a request is made.
|
|
48
|
+
*
|
|
49
|
+
* If you turn this off, the client will request that the server not renew an
|
|
50
|
+
* authentication token, even if it is within the renewal time of the
|
|
51
|
+
* expiration date.
|
|
52
|
+
*
|
|
53
|
+
* This defaults to true.
|
|
54
|
+
*/
|
|
55
|
+
renewTokens?: boolean;
|
|
9
56
|
};
|
|
10
57
|
export type EventType = 'request' | 'response';
|
|
11
58
|
export type RequestCallback = (url: string, options: RequestInit) => void;
|
|
12
59
|
export type ResponseCallback = (response: Response, text: string) => void;
|
|
13
60
|
export type Options<T extends EntityConstructor = EntityConstructor> = {
|
|
61
|
+
/**
|
|
62
|
+
* The Entity class to query.
|
|
63
|
+
*/
|
|
14
64
|
class: T;
|
|
65
|
+
/**
|
|
66
|
+
* The limit of entities to be returned. Not needed when using `getEntity`, as
|
|
67
|
+
* it always returns only one.
|
|
68
|
+
*/
|
|
15
69
|
limit?: number;
|
|
70
|
+
/**
|
|
71
|
+
* The offset from the first matching entity, in order, to start retrieving.
|
|
72
|
+
*/
|
|
16
73
|
offset?: number;
|
|
74
|
+
/**
|
|
75
|
+
* If true, entities will be retrieved from newest to oldest/largest to
|
|
76
|
+
* smallest (with regard to `sort`).
|
|
77
|
+
*/
|
|
17
78
|
reverse?: boolean;
|
|
18
|
-
|
|
79
|
+
/**
|
|
80
|
+
* How to sort the entities. Should be "cdate", "mdate", or the name of a
|
|
81
|
+
* property.
|
|
82
|
+
*/
|
|
83
|
+
sort?: 'cdate' | 'mdate' | string;
|
|
84
|
+
/**
|
|
85
|
+
* What to return, the entities with their data, just the GUIDs, or just a
|
|
86
|
+
* count.
|
|
87
|
+
*/
|
|
19
88
|
return?: 'entity' | 'guid' | 'count';
|
|
89
|
+
/**
|
|
90
|
+
* If true, Nymph will skip the cache and retrieve the entity from the DB.
|
|
91
|
+
*/
|
|
20
92
|
skipCache?: boolean;
|
|
21
93
|
};
|
|
22
94
|
export type Clause<C> = C | Exclude<C, undefined>[];
|
package/lib/PubSub.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import Nymph from './Nymph';
|
|
2
|
-
import { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import type { NymphOptions, Options, Selector } from './Nymph.types';
|
|
3
|
+
import type { EntityInstanceType } from './Entity';
|
|
4
|
+
import type { EntityConstructor, EntityInterface } from './Entity.types';
|
|
5
|
+
import type { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubErrorCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types';
|
|
5
6
|
export default class PubSub {
|
|
6
7
|
private nymph;
|
|
8
|
+
private authToken;
|
|
9
|
+
private switchToken;
|
|
7
10
|
private connection;
|
|
8
11
|
private waitForConnectionTimeout;
|
|
9
12
|
private pubsubUrl;
|
|
@@ -11,16 +14,17 @@ export default class PubSub {
|
|
|
11
14
|
private subscriptions;
|
|
12
15
|
private connectCallbacks;
|
|
13
16
|
private disconnectCallbacks;
|
|
17
|
+
private errorCallbacks;
|
|
14
18
|
private noConsole;
|
|
15
19
|
constructor(nymphOptions: NymphOptions, nymph: Nymph);
|
|
16
20
|
subscribeEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
|
|
17
21
|
return: 'guid';
|
|
18
22
|
}, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<string[]>>;
|
|
19
|
-
subscribeEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<
|
|
23
|
+
subscribeEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<EntityInstanceType<T>[]>>;
|
|
20
24
|
subscribeEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
|
|
21
25
|
return: 'guid';
|
|
22
26
|
}, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<string | null>>;
|
|
23
|
-
subscribeEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<
|
|
27
|
+
subscribeEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): PubSubSubscribable<PubSubUpdate<EntityInstanceType<T> | null>>;
|
|
24
28
|
subscribeUID(name: string): (resolve?: PubSubResolveCallback<number> | undefined, reject?: PubSubRejectCallback | undefined, count?: PubSubCountCallback | undefined) => {
|
|
25
29
|
unsubscribe: () => void;
|
|
26
30
|
};
|
|
@@ -34,6 +38,8 @@ export default class PubSub {
|
|
|
34
38
|
private _onclose;
|
|
35
39
|
private _send;
|
|
36
40
|
isConnectionOpen(): boolean;
|
|
41
|
+
isConnectionConnecting(): boolean;
|
|
42
|
+
isConnection(): boolean;
|
|
37
43
|
private _subscribeQuery;
|
|
38
44
|
private _subscribeUID;
|
|
39
45
|
private _sendQuery;
|
|
@@ -44,10 +50,10 @@ export default class PubSub {
|
|
|
44
50
|
private _unsubscribeUID;
|
|
45
51
|
private _sendUnQuery;
|
|
46
52
|
private _sendUnUID;
|
|
47
|
-
updateArray(
|
|
48
|
-
on<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : never): () => boolean;
|
|
49
|
-
off<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : never): boolean;
|
|
50
|
-
|
|
53
|
+
updateArray(current: EntityInterface[], update: PubSubUpdate<EntityInterface[]>): void;
|
|
54
|
+
on<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): () => boolean;
|
|
55
|
+
off<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): boolean;
|
|
56
|
+
authenticate(authToken: string | null, switchToken?: string | null): void;
|
|
51
57
|
}
|
|
52
58
|
export declare class PubSubSubscription<T> {
|
|
53
59
|
query: string;
|