@nymphjs/client 1.0.0-beta.13 → 1.0.0-beta.131

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 (73) hide show
  1. package/CHANGELOG.md +552 -0
  2. package/README.md +12 -8
  3. package/asyncitertest.js +53 -0
  4. package/dist/Entity.d.ts +158 -0
  5. package/dist/Entity.js +643 -0
  6. package/dist/Entity.js.map +1 -0
  7. package/dist/Entity.types.d.ts +216 -0
  8. package/dist/Entity.types.js +2 -0
  9. package/{lib → dist}/EntityWeakCache.d.ts +1 -1
  10. package/{lib → dist}/EntityWeakCache.js +5 -9
  11. package/dist/EntityWeakCache.js.map +1 -0
  12. package/{lib → dist}/HttpRequester.d.ts +18 -4
  13. package/dist/HttpRequester.js +365 -0
  14. package/dist/HttpRequester.js.map +1 -0
  15. package/{lib → dist}/Nymph.d.ts +48 -11
  16. package/{lib → dist}/Nymph.js +172 -56
  17. package/dist/Nymph.js.map +1 -0
  18. package/dist/Nymph.types.d.ts +227 -0
  19. package/dist/Nymph.types.js +45 -0
  20. package/dist/Nymph.types.js.map +1 -0
  21. package/{lib → dist}/PubSub.d.ts +16 -10
  22. package/{lib → dist}/PubSub.js +207 -135
  23. package/dist/PubSub.js.map +1 -0
  24. package/{lib → dist}/PubSub.types.d.ts +19 -6
  25. package/dist/PubSub.types.js +2 -0
  26. package/{lib → dist}/entityRefresh.d.ts +1 -1
  27. package/{lib → dist}/entityRefresh.js +21 -13
  28. package/dist/entityRefresh.js.map +1 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.js +13 -2
  31. package/dist/index.js.map +1 -1
  32. package/{lib → dist}/utils.d.ts +2 -1
  33. package/dist/utils.js +145 -0
  34. package/dist/utils.js.map +1 -0
  35. package/jest.config.js +31 -5
  36. package/package.json +36 -32
  37. package/src/Entity.ts +361 -247
  38. package/src/Entity.types.ts +37 -57
  39. package/src/EntityWeakCache.ts +8 -6
  40. package/src/HttpRequester.ts +268 -31
  41. package/src/Nymph.ts +203 -96
  42. package/src/Nymph.types.ts +98 -2
  43. package/src/PubSub.ts +264 -181
  44. package/src/PubSub.types.ts +33 -19
  45. package/src/entityRefresh.ts +6 -6
  46. package/src/index.ts +10 -10
  47. package/src/utils.ts +67 -14
  48. package/tsconfig.json +7 -4
  49. package/typedoc.json +4 -0
  50. package/dist/index.js.LICENSE.txt +0 -8
  51. package/lib/Entity.d.ts +0 -51
  52. package/lib/Entity.js +0 -500
  53. package/lib/Entity.js.map +0 -1
  54. package/lib/Entity.types.d.ts +0 -65
  55. package/lib/Entity.types.js +0 -3
  56. package/lib/EntityWeakCache.js.map +0 -1
  57. package/lib/HttpRequester.js +0 -190
  58. package/lib/HttpRequester.js.map +0 -1
  59. package/lib/Nymph.js.map +0 -1
  60. package/lib/Nymph.types.d.ts +0 -98
  61. package/lib/Nymph.types.js +0 -3
  62. package/lib/Nymph.types.js.map +0 -1
  63. package/lib/PubSub.js.map +0 -1
  64. package/lib/PubSub.types.js +0 -3
  65. package/lib/entityRefresh.js.map +0 -1
  66. package/lib/index.d.ts +0 -13
  67. package/lib/index.js +0 -34
  68. package/lib/index.js.map +0 -1
  69. package/lib/utils.js +0 -86
  70. package/lib/utils.js.map +0 -1
  71. package/webpack.config.js +0 -28
  72. /package/{lib → dist}/Entity.types.js.map +0 -0
  73. /package/{lib → dist}/PubSub.types.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpRequester.js","sourceRoot":"","sources":["../src/HttpRequester.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,56 @@
1
- import Entity from './Entity';
2
- import { EntityConstructor, EntityInterface, EntityJson, ServerCallResponse, ServerCallStaticResponse } from './Entity.types';
3
- import EntityWeakCache from './EntityWeakCache';
4
- import { EventType, NymphOptions, Options, RequestCallback, ResponseCallback, Selector } from './Nymph.types';
5
- import PubSub from './PubSub';
1
+ import Entity, { type EntityInstanceType } from './Entity.js';
2
+ import type { EntityConstructor, EntityInterface, EntityJson, ServerCallResponse, ServerCallStaticResponse } from './Entity.types.js';
3
+ import EntityWeakCache from './EntityWeakCache.js';
4
+ import type { AbortableAsyncIterator } from './HttpRequester.js';
5
+ import type { EventType, NymphOptions, Options, RequestCallback, ResponseCallback, Selector } from './Nymph.types.js';
6
+ import type PubSub from './PubSub.js';
6
7
  export default class Nymph {
8
+ /**
9
+ * And optional PubSub client instance.
10
+ */
7
11
  pubsub: PubSub | undefined;
12
+ /**
13
+ * A simple map of names to Entity classes.
14
+ */
8
15
  private entityClasses;
16
+ /**
17
+ * The entity class for this instance of Nymph.
18
+ */
9
19
  Entity: typeof Entity;
10
20
  private requestCallbacks;
11
21
  private responseCallbacks;
12
22
  private restUrl;
13
23
  private weakCache;
24
+ /**
25
+ * Headers that will be sent with every request.
26
+ *
27
+ * These are used by Tilmeld for authentication.
28
+ */
29
+ headers: {
30
+ [k: string]: string;
31
+ };
32
+ /**
33
+ * The entity cache.
34
+ */
14
35
  cache: EntityWeakCache;
36
+ /**
37
+ * Return `null` or empty array instead of error when entity/ies not found.
38
+ */
39
+ returnNullOnNotFound: boolean;
15
40
  constructor(NymphOptions: NymphOptions);
41
+ /**
42
+ * Add your class to this instance.
43
+ *
44
+ * This will create a class that extends your class within this instance of
45
+ * Nymph and return it. You can then use this class's constructor and methods,
46
+ * which will use this instance of Nymph.
47
+ *
48
+ * Because this creates a subclass, don't use the class returned from
49
+ * `getEntityClass` to check with `instanceof`. Instead, use the base class
50
+ * that you passed into this method.
51
+ */
16
52
  addEntityClass<T extends EntityConstructor>(entityClass: T): T;
53
+ getEntityClass<T extends EntityConstructor>(className: T): T;
17
54
  getEntityClass(className: string): EntityConstructor;
18
55
  newUID(name: string): Promise<number>;
19
56
  setUID(name: string, value: number): Promise<any>;
@@ -30,14 +67,14 @@ export default class Nymph {
30
67
  getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
31
68
  return: 'guid';
32
69
  }, ...selectors: Selector[]): Promise<string | null>;
33
- getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']> | null>;
70
+ getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T> | null>;
34
71
  getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
35
72
  return: 'count';
36
73
  }, guid: string): Promise<number>;
37
74
  getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
38
75
  return: 'guid';
39
76
  }, guid: string): Promise<string | null>;
40
- getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, guid: string): Promise<ReturnType<T['factorySync']> | null>;
77
+ getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, guid: string): Promise<EntityInstanceType<T> | null>;
41
78
  getEntityData<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
42
79
  return: 'count';
43
80
  }, ...selectors: Selector[]): Promise<number>;
@@ -58,18 +95,18 @@ export default class Nymph {
58
95
  getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
59
96
  return: 'guid';
60
97
  }, ...selectors: Selector[]): Promise<string[]>;
61
- getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']>[]>;
62
- initEntity<T extends EntityConstructor = EntityConstructor>(entityJSON: EntityJson<T>): ReturnType<T['factorySync']>;
63
- getEntityFromCache<T extends EntityConstructor = EntityConstructor>(EntityClass: EntityConstructor, guid: string): ReturnType<T['factorySync']> | null;
98
+ getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T>[]>;
99
+ initEntity<T extends EntityConstructor = EntityConstructor>(entityJSON: EntityJson<T>): EntityInstanceType<T>;
100
+ getEntityFromCache<T extends EntityConstructor = EntityConstructor>(EntityClass: EntityConstructor, guid: string): EntityInstanceType<T> | null;
64
101
  setEntityToCache(EntityClass: EntityConstructor, entity: EntityInterface): void;
65
102
  initEntitiesFromData<T extends any>(item: T): T;
66
103
  deleteEntity(entity: EntityInterface | EntityInterface[], _plural?: boolean): Promise<any>;
67
104
  deleteEntities(entities: EntityInterface[]): Promise<any>;
68
105
  serverCall(entity: EntityInterface, method: string, params: any[], stateless?: boolean): Promise<ServerCallResponse>;
69
106
  serverCallStatic(className: string, method: string, params: any[]): Promise<ServerCallStaticResponse>;
107
+ serverCallStaticIterator(className: string, method: string, params: any[]): Promise<AbortableAsyncIterator<ServerCallStaticResponse>>;
70
108
  on<T extends EventType>(event: T, callback: T extends 'request' ? RequestCallback : T extends 'response' ? ResponseCallback : never): () => boolean;
71
109
  off<T extends EventType>(event: T, callback: T extends 'request' ? RequestCallback : T extends 'response' ? ResponseCallback : never): boolean;
72
- setXsrfToken(token: string | null): void;
73
110
  }
74
111
  export declare class ClassNotAvailableError extends Error {
75
112
  constructor(message: string);
@@ -1,27 +1,52 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.InvalidRequestError = exports.ClassNotAvailableError = void 0;
7
- const Entity_1 = __importDefault(require("./Entity"));
8
- const EntityWeakCache_1 = __importDefault(require("./EntityWeakCache"));
9
- const HttpRequester_1 = __importDefault(require("./HttpRequester"));
10
- const utils_1 = require("./utils");
1
+ import Entity from './Entity.js';
2
+ import EntityWeakCache from './EntityWeakCache.js';
3
+ import HttpRequester, { ClientError } from './HttpRequester.js';
4
+ import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, } from './utils.js';
11
5
  let requester;
12
- class Nymph {
6
+ export default class Nymph {
7
+ /**
8
+ * And optional PubSub client instance.
9
+ */
10
+ pubsub = undefined;
11
+ /**
12
+ * A simple map of names to Entity classes.
13
+ */
14
+ entityClasses = {};
15
+ /**
16
+ * The entity class for this instance of Nymph.
17
+ */
18
+ Entity;
19
+ requestCallbacks = [];
20
+ responseCallbacks = [];
21
+ restUrl = '';
22
+ weakCache = false;
23
+ /**
24
+ * Headers that will be sent with every request.
25
+ *
26
+ * These are used by Tilmeld for authentication.
27
+ */
28
+ headers = {};
29
+ /**
30
+ * The entity cache.
31
+ */
32
+ cache = new EntityWeakCache();
33
+ /**
34
+ * Return `null` or empty array instead of error when entity/ies not found.
35
+ */
36
+ returnNullOnNotFound = false;
13
37
  constructor(NymphOptions) {
14
- this.pubsub = undefined;
15
- this.entityClasses = {};
16
- this.requestCallbacks = [];
17
- this.responseCallbacks = [];
18
- this.restUrl = '';
19
- this.weakCache = false;
20
- this.cache = new EntityWeakCache_1.default();
21
38
  this.restUrl = NymphOptions.restUrl;
39
+ // @ts-ignore TS doesn't know about WeakRef.
22
40
  this.weakCache = !!NymphOptions.weakCache && typeof WeakRef !== 'undefined';
23
- this.Entity = this.addEntityClass(Entity_1.default);
24
- requester = new HttpRequester_1.default('fetch' in NymphOptions ? NymphOptions.fetch : undefined);
41
+ if ('returnNullOnNotFound' in NymphOptions &&
42
+ NymphOptions.returnNullOnNotFound != null) {
43
+ this.returnNullOnNotFound = NymphOptions.returnNullOnNotFound;
44
+ }
45
+ this.Entity = this.addEntityClass(Entity);
46
+ requester = new HttpRequester('fetch' in NymphOptions ? NymphOptions.fetch : undefined);
47
+ if ('renewTokens' in NymphOptions && !NymphOptions.renewTokens) {
48
+ this.headers['X-Tilmeld-Token-Renewal'] = 'off';
49
+ }
25
50
  requester.on('request', (_requester, url, options) => {
26
51
  for (let i = 0; i < this.requestCallbacks.length; i++) {
27
52
  this.requestCallbacks[i] && this.requestCallbacks[i](url, options);
@@ -33,26 +58,45 @@ class Nymph {
33
58
  }
34
59
  });
35
60
  }
61
+ /**
62
+ * Add your class to this instance.
63
+ *
64
+ * This will create a class that extends your class within this instance of
65
+ * Nymph and return it. You can then use this class's constructor and methods,
66
+ * which will use this instance of Nymph.
67
+ *
68
+ * Because this creates a subclass, don't use the class returned from
69
+ * `getEntityClass` to check with `instanceof`. Instead, use the base class
70
+ * that you passed into this method.
71
+ */
36
72
  addEntityClass(entityClass) {
37
73
  const nymph = this;
38
74
  class NymphEntity extends entityClass {
75
+ static nymph = nymph;
39
76
  constructor(...args) {
40
77
  super(...args);
41
78
  }
42
79
  }
43
- NymphEntity.nymph = nymph;
44
80
  this.entityClasses[entityClass.class] = NymphEntity;
45
81
  return NymphEntity;
46
82
  }
47
83
  getEntityClass(className) {
48
- if (className in this.entityClasses) {
49
- return this.entityClasses[className];
84
+ let key = null;
85
+ if (typeof className === 'string') {
86
+ key = className;
87
+ }
88
+ else {
89
+ key = className.class;
50
90
  }
51
- throw new ClassNotAvailableError("Tried to get class that's not available: " + className);
91
+ if (key in this.entityClasses) {
92
+ return this.entityClasses[key];
93
+ }
94
+ throw new ClassNotAvailableError('Tried to use class: ' + key);
52
95
  }
53
96
  async newUID(name) {
54
97
  const data = await requester.POST({
55
98
  url: this.restUrl,
99
+ headers: { ...this.headers },
56
100
  dataType: 'text',
57
101
  data: { action: 'uid', data: name },
58
102
  });
@@ -61,6 +105,7 @@ class Nymph {
61
105
  async setUID(name, value) {
62
106
  return await requester.PUT({
63
107
  url: this.restUrl,
108
+ headers: { ...this.headers },
64
109
  dataType: 'json',
65
110
  data: { action: 'uid', data: { name, value } },
66
111
  });
@@ -68,6 +113,7 @@ class Nymph {
68
113
  async getUID(name) {
69
114
  const data = await requester.GET({
70
115
  url: this.restUrl,
116
+ headers: { ...this.headers },
71
117
  dataType: 'text',
72
118
  data: { action: 'uid', data: name },
73
119
  });
@@ -76,6 +122,7 @@ class Nymph {
76
122
  async deleteUID(name) {
77
123
  return await requester.DELETE({
78
124
  url: this.restUrl,
125
+ headers: { ...this.headers },
79
126
  dataType: 'text',
80
127
  data: { action: 'uid', data: name },
81
128
  });
@@ -121,6 +168,7 @@ class Nymph {
121
168
  async requestWithMethod(entity, method, data, plural) {
122
169
  const response = await requester[method]({
123
170
  url: this.restUrl,
171
+ headers: { ...this.headers },
124
172
  dataType: 'json',
125
173
  data: {
126
174
  action: plural ? 'entities' : 'entity',
@@ -129,18 +177,32 @@ class Nymph {
129
177
  });
130
178
  if (plural && Array.isArray(entity) && entity.length === response.length) {
131
179
  return entity.map((e, i) => response[i] &&
132
- typeof response[i].guid !== 'undefined' &&
180
+ response[i].guid != null &&
133
181
  (e.guid == null || e.guid === response[i].guid)
134
182
  ? e.$init(response[i])
135
183
  : e);
136
184
  }
137
- else if (!Array.isArray(entity) && typeof response.guid !== 'undefined') {
185
+ else if (!Array.isArray(entity) && response.guid != null) {
138
186
  return entity.$init(response);
139
187
  }
140
188
  throw new Error('Server error');
141
189
  }
142
190
  async getEntity(options, ...selectors) {
143
- const data = (await this.getEntityData(options, ...selectors));
191
+ let data = null;
192
+ try {
193
+ // @ts-ignore: Implementation signatures of overloads are not externally visible.
194
+ data = (await this.getEntityData(options, ...selectors));
195
+ }
196
+ catch (e) {
197
+ if (this.returnNullOnNotFound &&
198
+ e instanceof ClientError &&
199
+ e.status === 404) {
200
+ data = null;
201
+ }
202
+ else {
203
+ throw e;
204
+ }
205
+ }
144
206
  if (options.return && options.return === 'count') {
145
207
  return Number(data ?? 0);
146
208
  }
@@ -155,20 +217,22 @@ class Nymph {
155
217
  return null;
156
218
  }
157
219
  async getEntityData(options, ...selectors) {
158
- if (options.class === this.getEntityClass('Entity')) {
220
+ if (options.class instanceof Entity) {
159
221
  throw new InvalidRequestError("You can't make REST requests with the base Entity class.");
160
222
  }
223
+ // Set up options and selectors.
161
224
  if (typeof selectors[0] === 'string') {
162
225
  selectors = [{ type: '&', guid: selectors[0] }];
163
226
  }
164
227
  const data = await requester.GET({
165
228
  url: this.restUrl,
229
+ headers: { ...this.headers },
166
230
  dataType: 'json',
167
231
  data: {
168
232
  action: 'entity',
169
233
  data: [
170
- { ...options, class: options.class.class },
171
- ...(0, utils_1.entityConstructorsToClassNames)(selectors),
234
+ entityConstructorsToClassNames(options),
235
+ ...entityConstructorsToClassNames(entitiesToReferences(selectors)),
172
236
  ],
173
237
  },
174
238
  });
@@ -178,19 +242,36 @@ class Nymph {
178
242
  return null;
179
243
  }
180
244
  async getEntities(options, ...selectors) {
181
- const data = await requester.GET({
182
- url: this.restUrl,
183
- dataType: 'json',
184
- data: {
185
- action: 'entities',
186
- data: [
187
- { ...options, class: options.class.class },
188
- ...(0, utils_1.entityConstructorsToClassNames)(selectors),
189
- ],
190
- },
191
- });
245
+ let data = null;
246
+ try {
247
+ data = await requester.GET({
248
+ url: this.restUrl,
249
+ headers: { ...this.headers },
250
+ dataType: 'json',
251
+ data: {
252
+ action: 'entities',
253
+ data: [
254
+ entityConstructorsToClassNames(options),
255
+ ...entityConstructorsToClassNames(entitiesToReferences(selectors)),
256
+ ],
257
+ },
258
+ });
259
+ }
260
+ catch (e) {
261
+ if (this.returnNullOnNotFound &&
262
+ e instanceof ClientError &&
263
+ e.status === 404) {
264
+ data = null;
265
+ }
266
+ else {
267
+ throw e;
268
+ }
269
+ }
192
270
  if (options.return && options.return === 'count') {
193
- return Number(data);
271
+ return Number(data ?? 0);
272
+ }
273
+ if (data == null) {
274
+ return [];
194
275
  }
195
276
  if (options.return && options.return === 'guid') {
196
277
  return data;
@@ -198,12 +279,13 @@ class Nymph {
198
279
  return data.map((e) => this.initEntity(e));
199
280
  }
200
281
  initEntity(entityJSON) {
201
- const EntityClass = this.getEntityClass(entityJSON.class);
282
+ const EntityClass = classNamesToEntityConstructors(this, entityJSON.class);
202
283
  if (!EntityClass) {
203
284
  throw new ClassNotAvailableError(entityJSON.class + ' class cannot be found.');
204
285
  }
205
286
  let entity = EntityClass.factorySync();
206
287
  if (this.weakCache) {
288
+ // Try to get it from cache.
207
289
  const entityFromCache = this.cache.get(EntityClass, entityJSON.guid || '');
208
290
  if (entityFromCache != null) {
209
291
  entity = entityFromCache;
@@ -225,30 +307,33 @@ class Nymph {
225
307
  }
226
308
  initEntitiesFromData(item) {
227
309
  if (Array.isArray(item)) {
310
+ // Recurse into lower arrays.
228
311
  return item.map((entry) => this.initEntitiesFromData(entry));
229
312
  }
230
- else if (item instanceof Object &&
231
- !(item instanceof this.getEntityClass('Entity'))) {
313
+ else if (item instanceof Object && !(item instanceof Entity)) {
232
314
  if (item.hasOwnProperty('class') &&
233
315
  item.hasOwnProperty('guid') &&
234
316
  item.hasOwnProperty('cdate') &&
235
317
  item.hasOwnProperty('mdate') &&
236
318
  item.hasOwnProperty('tags') &&
237
319
  item.hasOwnProperty('data') &&
238
- this.getEntityClass(item.class)) {
320
+ classNamesToEntityConstructors(this, item.class) != null) {
239
321
  return this.initEntity(item);
240
322
  }
241
323
  else {
242
324
  for (let [key, value] of Object.entries(item)) {
325
+ // @ts-ignore: Key comes from the object. It's fine.
243
326
  item[key] = this.initEntitiesFromData(value);
244
327
  }
245
328
  }
246
329
  }
330
+ // Not an entity or array, just return it.
247
331
  return item;
248
332
  }
249
333
  async deleteEntity(entity, _plural = false) {
250
334
  return await requester.DELETE({
251
335
  url: this.restUrl,
336
+ headers: { ...this.headers },
252
337
  dataType: 'json',
253
338
  data: {
254
339
  action: _plural ? 'entities' : 'entity',
@@ -270,6 +355,7 @@ class Nymph {
270
355
  async serverCall(entity, method, params, stateless = false) {
271
356
  const data = await requester.POST({
272
357
  url: this.restUrl,
358
+ headers: { ...this.headers },
273
359
  dataType: 'json',
274
360
  data: {
275
361
  action: 'method',
@@ -277,7 +363,7 @@ class Nymph {
277
363
  entity,
278
364
  stateless,
279
365
  method,
280
- params: (0, utils_1.entitiesToReferences)((0, utils_1.entityConstructorsToClassNames)(params)),
366
+ params: entityConstructorsToClassNames(entitiesToReferences(params)),
281
367
  },
282
368
  },
283
369
  });
@@ -289,6 +375,7 @@ class Nymph {
289
375
  async serverCallStatic(className, method, params) {
290
376
  const data = await requester.POST({
291
377
  url: this.restUrl,
378
+ headers: { ...this.headers },
292
379
  dataType: 'json',
293
380
  data: {
294
381
  action: 'method',
@@ -296,17 +383,50 @@ class Nymph {
296
383
  class: className,
297
384
  static: true,
298
385
  method: method,
299
- params: (0, utils_1.entitiesToReferences)((0, utils_1.entityConstructorsToClassNames)(params)),
386
+ params: entityConstructorsToClassNames(entitiesToReferences(params)),
300
387
  },
301
388
  },
302
389
  });
303
390
  return this.initEntitiesFromData(data);
304
391
  }
392
+ async serverCallStaticIterator(className, method, params) {
393
+ const iterable = await requester.POST_ITERATOR({
394
+ url: this.restUrl,
395
+ headers: { ...this.headers },
396
+ dataType: 'json',
397
+ data: {
398
+ action: 'method',
399
+ data: {
400
+ class: className,
401
+ static: true,
402
+ method: method,
403
+ iterator: true,
404
+ params: entityConstructorsToClassNames(entitiesToReferences(params)),
405
+ },
406
+ },
407
+ });
408
+ const that = this;
409
+ const iterator = {
410
+ abortController: iterable.abortController,
411
+ async *[Symbol.asyncIterator]() {
412
+ for await (let response of iterable) {
413
+ if (response instanceof Error) {
414
+ yield response;
415
+ }
416
+ else {
417
+ yield that.initEntitiesFromData(response);
418
+ }
419
+ }
420
+ },
421
+ };
422
+ return iterator;
423
+ }
305
424
  on(event, callback) {
306
425
  const prop = (event + 'Callbacks');
307
426
  if (!(prop in this)) {
308
427
  throw new Error('Invalid event type.');
309
428
  }
429
+ // @ts-ignore: The callback should always be the right type here.
310
430
  this[prop].push(callback);
311
431
  return () => this.off(event, callback);
312
432
  }
@@ -315,29 +435,25 @@ class Nymph {
315
435
  if (!(prop in this)) {
316
436
  return false;
317
437
  }
438
+ // @ts-ignore: The callback should always be the right type here.
318
439
  const i = this[prop].indexOf(callback);
319
440
  if (i > -1) {
441
+ // @ts-ignore: The callback should always be the right type here.
320
442
  this[prop].splice(i, 1);
321
443
  }
322
444
  return true;
323
445
  }
324
- setXsrfToken(token) {
325
- requester.setXsrfToken(token);
326
- }
327
446
  }
328
- exports.default = Nymph;
329
- class ClassNotAvailableError extends Error {
447
+ export class ClassNotAvailableError extends Error {
330
448
  constructor(message) {
331
449
  super(message);
332
450
  this.name = 'ClassNotAvailableError';
333
451
  }
334
452
  }
335
- exports.ClassNotAvailableError = ClassNotAvailableError;
336
- class InvalidRequestError extends Error {
453
+ export class InvalidRequestError extends Error {
337
454
  constructor(message) {
338
455
  super(message);
339
456
  this.name = 'InvalidRequestError';
340
457
  }
341
458
  }
342
- exports.InvalidRequestError = InvalidRequestError;
343
459
  //# sourceMappingURL=Nymph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}