@nymphjs/client 1.0.0-beta.132 → 1.0.0-beta.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Nymph.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import Entity from './Entity.js';
2
- import EntityWeakCache from './EntityWeakCache.js';
3
- import HttpRequester, { ClientError } from './HttpRequester.js';
2
+ import { EntityWeakCache } from './EntityWeakCache.js';
3
+ import { QueryWeakCache } from './QueryWeakCache.js';
4
+ import { HttpRequester, ClientError } from './HttpRequester.js';
4
5
  import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, } from './utils.js';
5
6
  let requester;
6
7
  export default class Nymph {
@@ -20,6 +21,7 @@ export default class Nymph {
20
21
  responseCallbacks = [];
21
22
  restUrl = '';
22
23
  weakCache = false;
24
+ weakCacheKeepDirtyData = false;
23
25
  /**
24
26
  * Headers that will be sent with every request.
25
27
  *
@@ -29,7 +31,11 @@ export default class Nymph {
29
31
  /**
30
32
  * The entity cache.
31
33
  */
32
- cache = new EntityWeakCache();
34
+ entityCache = new EntityWeakCache();
35
+ /**
36
+ * The query cache.
37
+ */
38
+ queryCache = new QueryWeakCache();
33
39
  /**
34
40
  * Return `null` or empty array instead of error when entity/ies not found.
35
41
  */
@@ -38,6 +44,7 @@ export default class Nymph {
38
44
  this.restUrl = NymphOptions.restUrl;
39
45
  // @ts-ignore TS doesn't know about WeakRef.
40
46
  this.weakCache = !!NymphOptions.weakCache && typeof WeakRef !== 'undefined';
47
+ this.weakCacheKeepDirtyData = !!NymphOptions.weakCacheKeepDirtyData;
41
48
  if ('returnNullOnNotFound' in NymphOptions &&
42
49
  NymphOptions.returnNullOnNotFound != null) {
43
50
  this.returnNullOnNotFound = NymphOptions.returnNullOnNotFound;
@@ -111,12 +118,24 @@ export default class Nymph {
111
118
  });
112
119
  }
113
120
  async getUID(name) {
114
- const data = await requester.GET({
115
- url: this.restUrl,
116
- headers: { ...this.headers },
117
- dataType: 'text',
118
- data: { action: 'uid', data: name },
119
- });
121
+ const query = { action: 'uid', data: name };
122
+ let promise = null;
123
+ const queryJSON = JSON.stringify(query);
124
+ if (this.weakCache) {
125
+ promise = this.queryCache.get(queryJSON);
126
+ }
127
+ if (promise == null) {
128
+ promise = requester.GET({
129
+ url: this.restUrl,
130
+ headers: { ...this.headers },
131
+ dataType: 'text',
132
+ data: query,
133
+ });
134
+ if (this.weakCache) {
135
+ this.queryCache.set(queryJSON, promise);
136
+ }
137
+ }
138
+ const data = await promise;
120
139
  return Number(data);
121
140
  }
122
141
  async deleteUID(name) {
@@ -179,11 +198,11 @@ export default class Nymph {
179
198
  return entity.map((e, i) => response[i] &&
180
199
  response[i].guid != null &&
181
200
  (e.guid == null || e.guid === response[i].guid)
182
- ? e.$init(response[i])
201
+ ? e.$init(response[i], method !== 'GET')
183
202
  : e);
184
203
  }
185
204
  else if (!Array.isArray(entity) && response.guid != null) {
186
- return entity.$init(response);
205
+ return entity.$init(response, method !== 'GET');
187
206
  }
188
207
  throw new Error('Server error');
189
208
  }
@@ -211,7 +230,7 @@ export default class Nymph {
211
230
  return data;
212
231
  }
213
232
  else {
214
- return this.initEntity(data);
233
+ return this.initEntity(data, false);
215
234
  }
216
235
  }
217
236
  return null;
@@ -224,18 +243,30 @@ export default class Nymph {
224
243
  if (typeof selectors[0] === 'string') {
225
244
  selectors = [{ type: '&', guid: selectors[0] }];
226
245
  }
227
- const data = await requester.GET({
228
- url: this.restUrl,
229
- headers: { ...this.headers },
230
- dataType: 'json',
231
- data: {
232
- action: 'entity',
233
- data: [
234
- entityConstructorsToClassNames(options),
235
- ...entityConstructorsToClassNames(entitiesToReferences(selectors)),
236
- ],
237
- },
238
- });
246
+ const query = {
247
+ action: 'entity',
248
+ data: [
249
+ entityConstructorsToClassNames(options),
250
+ ...entityConstructorsToClassNames(entitiesToReferences(selectors)),
251
+ ],
252
+ };
253
+ let promise = null;
254
+ const queryJSON = JSON.stringify(query);
255
+ if (this.weakCache) {
256
+ promise = this.queryCache.get(queryJSON);
257
+ }
258
+ if (promise == null) {
259
+ promise = requester.GET({
260
+ url: this.restUrl,
261
+ headers: { ...this.headers },
262
+ dataType: 'json',
263
+ data: query,
264
+ });
265
+ if (this.weakCache) {
266
+ this.queryCache.set(queryJSON, promise);
267
+ }
268
+ }
269
+ const data = await promise;
239
270
  if (options.return === 'count' || typeof data.guid !== 'undefined') {
240
271
  return data;
241
272
  }
@@ -244,18 +275,30 @@ export default class Nymph {
244
275
  async getEntities(options, ...selectors) {
245
276
  let data = null;
246
277
  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
- });
278
+ const query = {
279
+ action: 'entities',
280
+ data: [
281
+ entityConstructorsToClassNames(options),
282
+ ...entityConstructorsToClassNames(entitiesToReferences(selectors)),
283
+ ],
284
+ };
285
+ let promise = null;
286
+ const queryJSON = JSON.stringify(query);
287
+ if (this.weakCache) {
288
+ promise = this.queryCache.get(queryJSON);
289
+ }
290
+ if (promise == null) {
291
+ promise = requester.GET({
292
+ url: this.restUrl,
293
+ headers: { ...this.headers },
294
+ dataType: 'json',
295
+ data: query,
296
+ });
297
+ if (this.weakCache) {
298
+ this.queryCache.set(queryJSON, promise);
299
+ }
300
+ }
301
+ data = await promise;
259
302
  }
260
303
  catch (e) {
261
304
  if (this.returnNullOnNotFound &&
@@ -276,9 +319,9 @@ export default class Nymph {
276
319
  if (options.return && options.return === 'guid') {
277
320
  return data;
278
321
  }
279
- return data.map((e) => this.initEntity(e));
322
+ return data.map((e) => this.initEntity(e, false));
280
323
  }
281
- initEntity(entityJSON) {
324
+ initEntity(entityJSON, isFromSave) {
282
325
  const EntityClass = classNamesToEntityConstructors(this, entityJSON.class);
283
326
  if (!EntityClass) {
284
327
  throw new ClassNotAvailableError(entityJSON.class + ' class cannot be found.');
@@ -286,29 +329,29 @@ export default class Nymph {
286
329
  let entity = EntityClass.factorySync();
287
330
  if (this.weakCache) {
288
331
  // Try to get it from cache.
289
- const entityFromCache = this.cache.get(EntityClass, entityJSON.guid || '');
332
+ const entityFromCache = this.entityCache.get(EntityClass, entityJSON.guid || '');
290
333
  if (entityFromCache != null) {
291
334
  entity = entityFromCache;
292
335
  }
293
336
  }
294
- return entity.$init(entityJSON);
337
+ return entity.$init(entityJSON, isFromSave);
295
338
  }
296
339
  getEntityFromCache(EntityClass, guid) {
297
340
  if (!this.weakCache) {
298
341
  return null;
299
342
  }
300
- return this.cache.get(EntityClass, guid);
343
+ return this.entityCache.get(EntityClass, guid);
301
344
  }
302
345
  setEntityToCache(EntityClass, entity) {
303
346
  if (!this.weakCache) {
304
347
  return;
305
348
  }
306
- return this.cache.set(EntityClass, entity);
349
+ return this.entityCache.set(EntityClass, entity);
307
350
  }
308
- initEntitiesFromData(item) {
351
+ initEntitiesFromData(item, isFromSave) {
309
352
  if (Array.isArray(item)) {
310
353
  // Recurse into lower arrays.
311
- return item.map((entry) => this.initEntitiesFromData(entry));
354
+ return item.map((entry) => this.initEntitiesFromData(entry, isFromSave));
312
355
  }
313
356
  else if (item instanceof Object && !(item instanceof Entity)) {
314
357
  if (item.hasOwnProperty('class') &&
@@ -318,12 +361,12 @@ export default class Nymph {
318
361
  item.hasOwnProperty('tags') &&
319
362
  item.hasOwnProperty('data') &&
320
363
  classNamesToEntityConstructors(this, item.class) != null) {
321
- return this.initEntity(item);
364
+ return this.initEntity(item, isFromSave);
322
365
  }
323
366
  else {
324
367
  for (let [key, value] of Object.entries(item)) {
325
368
  // @ts-ignore: Key comes from the object. It's fine.
326
- item[key] = this.initEntitiesFromData(value);
369
+ item[key] = this.initEntitiesFromData(value, isFromSave);
327
370
  }
328
371
  }
329
372
  }
@@ -369,7 +412,7 @@ export default class Nymph {
369
412
  });
370
413
  return {
371
414
  ...data,
372
- return: this.initEntitiesFromData(data.return),
415
+ return: this.initEntitiesFromData(data.return, false),
373
416
  };
374
417
  }
375
418
  async serverCallStatic(className, method, params) {
@@ -387,7 +430,7 @@ export default class Nymph {
387
430
  },
388
431
  },
389
432
  });
390
- return this.initEntitiesFromData(data);
433
+ return this.initEntitiesFromData(data, false);
391
434
  }
392
435
  async serverCallStaticIterator(className, method, params) {
393
436
  const iterable = await requester.POST_ITERATOR({
@@ -414,7 +457,7 @@ export default class Nymph {
414
457
  yield response;
415
458
  }
416
459
  else {
417
- yield that.initEntitiesFromData(response);
460
+ yield that.initEntitiesFromData(response, false);
418
461
  }
419
462
  }
420
463
  },
package/dist/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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"}
@@ -29,24 +29,43 @@ export type NymphOptions = {
29
29
  */
30
30
  noAutoconnect?: boolean;
31
31
  /**
32
- * Use a WeakRef based cache of entities.
32
+ * Use a WeakRef based cache of entities and queries.
33
33
  *
34
34
  * This ensures all entities returned are the same instance if they have the
35
35
  * same class and GUID. This also means that whenever an entity is returned
36
36
  * from the server, the single instance in memory will be refreshed. This
37
37
  * could have annoying results, like destroying dirty data (the dreaded
38
- * triple-D).
38
+ * triple-D). The dirty data problem can be partially mitigated with
39
+ * weakCacheKeepDirtyData.
39
40
  *
40
41
  * This could also be a potential source of memory leaks. Although the
41
42
  * entities themselves are referenced weakly so they get garbage collected,
42
43
  * the GUID used as a key and the WeakRef object itself are not weak
43
44
  * references, so not destroyed when the instance is garbage collected.
44
45
  *
46
+ * Queries are also cached with weak references. Practically, what this means
47
+ * is that if you make two identical queries (getEntity, getEntities, or
48
+ * getUID) at the same time, only one request will be sent to the server, and
49
+ * both queries will resolve with the same result. This is particularly useful
50
+ * if you tend to wake a lot of copies of the same entity (like a user) at the
51
+ * same time.
52
+ *
45
53
  * However, even with these caveats, this might help you if you have a big app
46
54
  * with the same entities stored in several different places in memory. This
47
55
  * can help to synchronize them correctly and avoid data conflicts.
48
56
  */
49
57
  weakCache?: boolean;
58
+ /**
59
+ * Keep dirty data after receiving unrelated updates from the server.
60
+ *
61
+ * When an entity in the weak cache is updated from the server due to an
62
+ * unrelated query (ie, not because it was just saved), all of the properties
63
+ * that are currently marked dirty will not be overwritten by the new data.
64
+ *
65
+ * This could potentially have negative consequences if your data is
66
+ * complicated and interrelated.
67
+ */
68
+ weakCacheKeepDirtyData?: boolean;
50
69
  /**
51
70
  * Whether to renew tokens when a request is made.
52
71
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":"AAoOA,MAAM,CAAN,IAAY,oBA0CX;AA1CD,WAAY,oBAAoB;IAC9B;;;;OAIG;IACH,2EAAc,CAAA;IACd;;;;;OAKG;IACH,2EAAc,CAAA;IACd;;OAEG;IACH,6FAAuB,CAAA;IACvB;;OAEG;IACH,iGAAyB,CAAA;IACzB;;OAEG;IACH,qFAAmB,CAAA;IACnB;;OAEG;IACH,wGAA6B,CAAA;IAC7B;;OAEG;IACH,4GAA+B,CAAA;IAC/B;;OAEG;IACH,wFAAqB,CAAA;IACrB;;OAEG;IACH,uEAAa,CAAA;AACf,CAAC,EA1CW,oBAAoB,KAApB,oBAAoB,QA0C/B"}
1
+ {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":"AAuPA,MAAM,CAAN,IAAY,oBA0CX;AA1CD,WAAY,oBAAoB;IAC9B;;;;OAIG;IACH,2EAAc,CAAA;IACd;;;;;OAKG;IACH,2EAAc,CAAA;IACd;;OAEG;IACH,6FAAuB,CAAA;IACvB;;OAEG;IACH,iGAAyB,CAAA;IACzB;;OAEG;IACH,qFAAmB,CAAA;IACnB;;OAEG;IACH,wGAA6B,CAAA;IAC7B;;OAEG;IACH,4GAA+B,CAAA;IAC/B;;OAEG;IACH,wFAAqB,CAAA;IACrB;;OAEG;IACH,uEAAa,CAAA;AACf,CAAC,EA1CW,oBAAoB,KAApB,oBAAoB,QA0C/B"}
package/dist/PubSub.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import Nymph from './Nymph.js';
2
2
  import type { NymphOptions, Options, Selector } from './Nymph.types.js';
3
3
  import type { EntityInstanceType } from './Entity.js';
4
- import type { EntityConstructor, EntityInterface } from './Entity.types.js';
4
+ import type { EntityConstructor, EntityData, EntityInterface } from './Entity.types.js';
5
5
  import type { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubErrorCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types.js';
6
6
  export default class PubSub {
7
7
  private nymph;
@@ -50,7 +50,7 @@ export default class PubSub {
50
50
  private _unsubscribeUID;
51
51
  private _sendUnQuery;
52
52
  private _sendUnUID;
53
- updateArray(current: EntityInterface[], update: PubSubUpdate<EntityInterface[]>): void;
53
+ updateArray(current: (EntityInterface & EntityData)[], update: PubSubUpdate<(EntityInterface & EntityData)[]>): void;
54
54
  on<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): () => boolean;
55
55
  off<T extends PubSubEventType>(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): boolean;
56
56
  authenticate(authToken: string | null, switchToken?: string | null): void;
package/dist/PubSub.js CHANGED
@@ -112,7 +112,7 @@ export default class PubSub {
112
112
  const newResolve = (args) => {
113
113
  if (Array.isArray(args)) {
114
114
  if (args.length) {
115
- entity.$init(args[0].toJSON());
115
+ entity.$init(args[0].toJSON(), false);
116
116
  }
117
117
  else {
118
118
  entity.guid = null;
@@ -127,7 +127,7 @@ export default class PubSub {
127
127
  entity.guid = null;
128
128
  }
129
129
  else {
130
- entity.$init(update.data);
130
+ entity.$init(update.data, false);
131
131
  }
132
132
  }
133
133
  if (resolve) {
@@ -253,7 +253,7 @@ export default class PubSub {
253
253
  const callback = subs[i][0];
254
254
  if (typeof callback === 'function') {
255
255
  callback(set
256
- ? data.data.map((e) => this.nymph.initEntity(e))
256
+ ? data.data.map((e) => this.nymph.initEntity(e, false))
257
257
  : data);
258
258
  }
259
259
  }
@@ -496,7 +496,10 @@ export default class PubSub {
496
496
  }
497
497
  else if (idMap[guid].mdate !== entity.mdate) {
498
498
  // It was modified.
499
- idMap[guid].$init(entity.toJSON());
499
+ const json = entity.toJSON();
500
+ if (!Array.isArray(json)) {
501
+ idMap[guid].$init(json, false);
502
+ }
500
503
  current.push(idMap[guid]);
501
504
  }
502
505
  else {
@@ -523,19 +526,19 @@ export default class PubSub {
523
526
  // Check for it in the array already.
524
527
  for (let i = 0; i < current.length; i++) {
525
528
  if (current[i] != null && current[i].guid === curUpdate.added) {
526
- entity = current.splice(i, 1)[0].$init(curUpdate.data);
529
+ entity = current.splice(i, 1)[0].$init(curUpdate.data, false);
527
530
  }
528
531
  }
529
532
  if (entity == null) {
530
533
  // A new entity.
531
- entity = this.nymph.initEntity(curUpdate.data);
534
+ entity = this.nymph.initEntity(curUpdate.data, false);
532
535
  }
533
536
  }
534
537
  if ('updated' in curUpdate) {
535
538
  // Extract it from the array.
536
539
  for (let i = 0; i < current.length; i++) {
537
540
  if (current[i] != null && current[i].guid === curUpdate.updated) {
538
- entity = current.splice(i, 1)[0].$init(curUpdate.data);
541
+ entity = current.splice(i, 1)[0].$init(curUpdate.data, false);
539
542
  }
540
543
  }
541
544
  }
@@ -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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"}
@@ -0,0 +1,6 @@
1
+ export declare class QueryWeakCache {
2
+ private queries;
3
+ get(queryJSON: string): Promise<any> | null;
4
+ set(queryJSON: string, promise: Promise<any>): void;
5
+ clean(): void;
6
+ }
@@ -0,0 +1,31 @@
1
+ export class QueryWeakCache {
2
+ queries = new Map();
3
+ get(queryJSON) {
4
+ const weakRef = this.queries.get(queryJSON);
5
+ const deref = weakRef && weakRef.deref();
6
+ if (deref != null) {
7
+ return deref;
8
+ }
9
+ else {
10
+ this.queries.delete(queryJSON);
11
+ }
12
+ return null;
13
+ }
14
+ set(queryJSON, promise) {
15
+ this.clean();
16
+ if (!(promise instanceof Promise)) {
17
+ return;
18
+ }
19
+ const weakRef = new WeakRef(promise);
20
+ this.queries.set(queryJSON, weakRef);
21
+ }
22
+ clean() {
23
+ this.queries.forEach((value, key) => {
24
+ const deref = value && value.deref();
25
+ if (deref == null) {
26
+ this.queries.delete(key);
27
+ }
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=QueryWeakCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryWeakCache.js","sourceRoot":"","sources":["../src/QueryWeakCache.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACjB,OAAO,GAAuC,IAAI,GAAG,EAAE,CAAC;IAEhE,GAAG,CAAC,SAAiB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,OAAqB;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/client",
3
- "version": "1.0.0-beta.132",
3
+ "version": "1.0.0-beta.134",
4
4
  "description": "Nymph.js - Client",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -51,5 +51,5 @@
51
51
  "ts-node": "^10.9.2",
52
52
  "typescript": "^7.0.2"
53
53
  },
54
- "gitHead": "d421575ba555d6c9025ec4b3d9f6ce0f498adbf2"
54
+ "gitHead": "31b045084100c2267c2eac7ad457d52983b0b895"
55
55
  }