@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.
Files changed (74) hide show
  1. package/CHANGELOG.md +456 -0
  2. package/README.md +7 -7
  3. package/asyncitertest.js +53 -0
  4. package/dist/Entity.d.ts +156 -0
  5. package/dist/Entity.js +598 -0
  6. package/dist/Entity.js.map +1 -0
  7. package/dist/Entity.types.d.ts +218 -0
  8. package/dist/Entity.types.js +2 -0
  9. package/dist/Entity.types.js.map +1 -0
  10. package/dist/EntityWeakCache.d.ts +6 -0
  11. package/dist/EntityWeakCache.js +27 -0
  12. package/dist/EntityWeakCache.js.map +1 -0
  13. package/dist/HttpRequester.d.ts +78 -0
  14. package/dist/HttpRequester.js +365 -0
  15. package/dist/HttpRequester.js.map +1 -0
  16. package/dist/Nymph.d.ts +116 -0
  17. package/dist/Nymph.js +459 -0
  18. package/dist/Nymph.js.map +1 -0
  19. package/dist/Nymph.types.d.ts +177 -0
  20. package/dist/Nymph.types.js +2 -0
  21. package/dist/Nymph.types.js.map +1 -0
  22. package/dist/PubSub.d.ts +63 -0
  23. package/dist/PubSub.js +599 -0
  24. package/dist/PubSub.js.map +1 -0
  25. package/dist/PubSub.types.d.ts +31 -0
  26. package/dist/PubSub.types.js +2 -0
  27. package/dist/PubSub.types.js.map +1 -0
  28. package/dist/entityRefresh.d.ts +5 -0
  29. package/dist/entityRefresh.js +75 -0
  30. package/dist/entityRefresh.js.map +1 -0
  31. package/dist/index.d.ts +13 -0
  32. package/dist/index.js +13 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/utils.d.ts +8 -0
  35. package/dist/utils.js +93 -0
  36. package/dist/utils.js.map +1 -0
  37. package/jest.config.js +11 -2
  38. package/lib/Entity.d.ts +112 -8
  39. package/lib/Entity.js +159 -77
  40. package/lib/Entity.js.map +1 -1
  41. package/lib/Entity.types.d.ts +144 -9
  42. package/lib/EntityWeakCache.js +3 -2
  43. package/lib/EntityWeakCache.js.map +1 -1
  44. package/lib/HttpRequester.d.ts +44 -8
  45. package/lib/HttpRequester.js +236 -21
  46. package/lib/HttpRequester.js.map +1 -1
  47. package/lib/Nymph.d.ts +43 -11
  48. package/lib/Nymph.js +102 -19
  49. package/lib/Nymph.js.map +1 -1
  50. package/lib/Nymph.types.d.ts +73 -1
  51. package/lib/PubSub.d.ts +15 -9
  52. package/lib/PubSub.js +148 -87
  53. package/lib/PubSub.js.map +1 -1
  54. package/lib/PubSub.types.d.ts +6 -1
  55. package/lib/entityRefresh.js +16 -0
  56. package/lib/entityRefresh.js.map +1 -1
  57. package/lib/utils.js +11 -0
  58. package/lib/utils.js.map +1 -1
  59. package/package.json +23 -27
  60. package/src/Entity.ts +171 -108
  61. package/src/Entity.types.ts +29 -47
  62. package/src/EntityWeakCache.ts +8 -6
  63. package/src/HttpRequester.ts +308 -35
  64. package/src/Nymph.ts +212 -96
  65. package/src/Nymph.types.ts +51 -2
  66. package/src/PubSub.ts +214 -141
  67. package/src/PubSub.types.ts +10 -5
  68. package/src/entityRefresh.ts +6 -6
  69. package/src/index.ts +10 -10
  70. package/src/utils.ts +12 -5
  71. package/tsconfig.json +6 -4
  72. package/typedoc.json +4 -0
  73. package/dist/index.js.LICENSE.txt +0 -8
  74. 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
- class NymphEntity extends Entity_1.default {
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
- this.entityClasses[entityClass.class] = entityClass;
43
- entityClass.nymph = this;
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
- if (this.entityClasses.hasOwnProperty(className)) {
47
- const EntityClass = this.entityClasses[className];
48
- EntityClass.nymph = this;
49
- return EntityClass;
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("Tried to get class that's not available: " + className);
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 === this.getEntityClass('Entity')) {
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":";;;;;;AAAA,sDAA8B;AAS9B,wEAAgD;AAChD,oEAA4C;AAU5C,mCAA+E;AAE/E,IAAI,SAAwB,CAAC;AAE7B,MAAqB,KAAK;IAsBxB,YAAmB,YAA0B;QAlBtC,WAAM,GAAuB,SAAS,CAAC;QAKtC,kBAAa,GAAuC,EAAE,CAAC;QAKxD,WAAM,GAAkB,gBAAM,CAAC;QAE9B,qBAAgB,GAAsB,EAAE,CAAC;QACzC,sBAAiB,GAAuB,EAAE,CAAC;QAC3C,YAAO,GAAW,EAAE,CAAC;QACrB,cAAS,GAAG,KAAK,CAAC;QACnB,UAAK,GAAG,IAAI,yBAAe,EAAE,CAAC;QAGnC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,OAAO,KAAK,WAAW,CAAC;QAE5E,MAAM,WAA+C,SAAQ,gBAAS;SAAG;QACzE,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEjC,SAAS,GAAG,IAAI,uBAAa,CAC3B,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;QAEF,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACpE;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACxE;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,cAAc,CAAC,WAA8B;QAClD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QACpD,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAClD,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;YACzB,OAAO,WAAW,CAAC;SACpB;QACD,MAAM,IAAI,sBAAsB,CAC9B,2CAA2C,GAAG,SAAS,CACxD,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAa;QAC7C,OAAO,MAAM,SAAS,CAAC,GAAG,CAAC;YACzB,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAY;QACjC,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,IAAI,MAAM,GAAmB,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAA2B;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B;QAED,IAAI,MAAM,GAAmB,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACvE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,IACE,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;gBACvC,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EACtC;gBACA,MAAM,IAAI,mBAAmB,CAC3B,+DAA+D;oBAC7D,sDAAsD,CACzD,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,MAAuB;QAC9C,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;YACvB,MAAM,IAAI,mBAAmB,CAC3B,uDAAuD,CACxD,CAAC;SACH;QAED,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAA2B;QACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B;QAED,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;gBACpB,MAAM,IAAI,mBAAmB,CAC3B,+DAA+D;oBAC7D,sDAAsD,CACzD,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAcO,KAAK,CAAC,iBAAiB,CAC7B,MAAe,EACf,MAAmD,EACnD,IAA0B,EAC1B,MAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACtC,IAAI;aACL;SACF,CAAC,CAAC;QACH,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;YACxE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzB,QAAQ,CAAC,CAAC,CAAC;gBACX,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;gBACvC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC,CACC,CAAC;SACV;aAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;YACzE,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAM,CAAC;SACpC;QACD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IA0BM,KAAK,CAAC,SAAS,CACpB,OAAmB,EACnB,GAAG,SAAgC;QAGnC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAIrD,CAAC;QAET,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;YAChD,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,CAAW,CAAC;SACpC;QACD,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC/C,OAAO,IAAc,CAAC;aACvB;iBAAM;gBACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAqB,CAAC,CAAC;aAC/C;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IA0BM,KAAK,CAAC,aAAa,CACxB,OAAmB,EACnB,GAAG,SAAgC;QAEnC,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YACnD,MAAM,IAAI,mBAAmB,CAC3B,0DAA0D,CAC3D,CAAC;SACH;QAED,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACpC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjD;QACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;oBAC1C,GAAG,IAAA,sCAA8B,EAAC,SAAS,CAAC;iBAC7C;aACF;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAClE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAcM,KAAK,CAAC,WAAW,CACtB,OAAmB,EACnB,GAAG,SAAqB;QAExB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YAC/B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE;oBACJ,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;oBAC1C,GAAG,IAAA,sCAA8B,EAAC,SAAS,CAAC;iBAC7C;aACF;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;YAChD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;YAC/C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,UAAU,CACf,UAAyB;QAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,sBAAsB,CAC9B,UAAU,CAAC,KAAK,GAAG,yBAAyB,CAC7C,CAAC;SACH;QACD,IAAI,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,SAAS,EAAE;YAElB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CACpC,WAAW,EACX,UAAU,CAAC,IAAI,IAAI,EAAE,CACtB,CAAC;YACF,IAAI,eAAe,IAAI,IAAI,EAAE;gBAC3B,MAAM,GAAG,eAAe,CAAC;aAC1B;SACF;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAiC,CAAC;IAClE,CAAC;IAEM,kBAAkB,CACvB,WAA8B,EAC9B,IAAY;QAEZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAE/B,CAAC;IACX,CAAC;IAEM,gBAAgB,CACrB,WAA8B,EAC9B,MAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,oBAAoB,CAAgB,IAAO;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAEvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAM,CAAC;SACnE;aAAM,IACL,IAAI,YAAY,MAAM;YACtB,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAChD;YACA,IACE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,cAAc,CAAE,IAA0B,CAAC,KAAK,CAAC,EACtD;gBACA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAyB,CAAM,CAAC;aACxD;iBAAM;gBACL,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBAE7C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;iBAC9C;aACF;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,MAA2C,EAC3C,OAAO,GAAG,KAAK;QAEf,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;gBACvC,IAAI,EACF,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC9B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACjB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAG,CAAC,CAAC,WAAiC,CAAC,KAAK;qBAClD,CAAC,CAAC;oBACL,CAAC,CAAC;wBACE,IAAI,EAAG,MAA0B,CAAC,IAAI;wBACtC,KAAK,EAAG,MAAM,CAAC,WAAiC,CAAC,KAAK;qBACvD;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,QAA2B;QACrD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,MAAuB,EACvB,MAAc,EACd,MAAa,EACb,SAAS,GAAG,KAAK;QAEjB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,MAAM;oBACN,SAAS;oBACT,MAAM;oBACN,MAAM,EAAE,IAAA,4BAAoB,EAAC,IAAA,sCAA8B,EAAC,MAAM,CAAC,CAAC;iBACrE;aACF;SACF,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;SAC/C,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,SAAiB,EACjB,MAAc,EACd,MAAa;QAEb,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;YAChC,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,IAAA,4BAAoB,EAAC,IAAA,sCAA8B,EAAC,MAAM,CAAC,CAAC;iBACrE;aACF;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,EAAE,CACP,KAAQ,EACR,QAIS;QAET,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,WAAW,CAIxB,CAAC;QACV,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,GAAG,CACR,KAAQ,EACR,QAIS;QAET,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,WAAW,CAIxB,CAAC;QACV,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAEV,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,KAAoB;QACtC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AAnhBD,wBAmhBC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,wDAKC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC"}
1
+ {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
@@ -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
- sort?: 'cdate' | 'mdate';
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 { EntityConstructor, EntityInterface } from './Entity.types';
4
- import { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types';
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<ReturnType<T['factorySync']>[]>>;
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<ReturnType<T['factorySync']> | null>>;
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(oldArr: EntityInterface[], update: PubSubUpdate<EntityInterface[]>): void;
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
- setToken(token: string | null): void;
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;