@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/Entity.js
CHANGED
|
@@ -3,19 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InvalidStateError = exports.EntityIsSleepingReferenceError = void 0;
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
|
-
const sleepErr = 'This entity is in a sleeping reference state. ' +
|
|
7
|
-
'You must use .$ready() to wake it.';
|
|
8
6
|
class Entity {
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Initialize an entity.
|
|
9
|
+
*/
|
|
10
|
+
constructor(..._rest) {
|
|
11
|
+
/**
|
|
12
|
+
* The entity's Globally Unique ID.
|
|
13
|
+
*/
|
|
10
14
|
this.guid = null;
|
|
15
|
+
/**
|
|
16
|
+
* The creation date of the entity as a high precision Unix timestamp.
|
|
17
|
+
*/
|
|
11
18
|
this.cdate = null;
|
|
19
|
+
/**
|
|
20
|
+
* The modified date of the entity as a high precision Unix timestamp.
|
|
21
|
+
*/
|
|
12
22
|
this.mdate = null;
|
|
23
|
+
/**
|
|
24
|
+
* Array of the entity's tags.
|
|
25
|
+
*/
|
|
13
26
|
this.tags = [];
|
|
27
|
+
/**
|
|
28
|
+
* Array of the entity's original tags (for patch).
|
|
29
|
+
*/
|
|
14
30
|
this.$originalTags = [];
|
|
31
|
+
/**
|
|
32
|
+
* A map of props to whether they're dirty (for patch).
|
|
33
|
+
*/
|
|
15
34
|
this.$dirty = {};
|
|
35
|
+
/**
|
|
36
|
+
* Whether this instance is a sleeping reference.
|
|
37
|
+
*/
|
|
16
38
|
this.$isASleepingReference = false;
|
|
39
|
+
/**
|
|
40
|
+
* The reference to use to wake.
|
|
41
|
+
*/
|
|
17
42
|
this.$sleepingReference = null;
|
|
18
|
-
|
|
43
|
+
/**
|
|
44
|
+
* A promise that resolved when the entity's data is wake.
|
|
45
|
+
*/
|
|
46
|
+
this.$wakePromise = null;
|
|
19
47
|
this.$nymph = this.constructor.nymph;
|
|
20
48
|
this.$dataHandler = {
|
|
21
49
|
has: (data, name) => {
|
|
@@ -85,16 +113,6 @@ class Entity {
|
|
|
85
113
|
};
|
|
86
114
|
this.$dataStore = {};
|
|
87
115
|
this.$data = new Proxy(this.$dataStore, this.$dataHandler);
|
|
88
|
-
if (guid != null) {
|
|
89
|
-
this.guid = guid;
|
|
90
|
-
this.$isASleepingReference = true;
|
|
91
|
-
this.$sleepingReference = [
|
|
92
|
-
'nymph_entity_reference',
|
|
93
|
-
this.guid,
|
|
94
|
-
this.constructor.class,
|
|
95
|
-
];
|
|
96
|
-
this.$ready();
|
|
97
|
-
}
|
|
98
116
|
return new Proxy(this, {
|
|
99
117
|
has(entity, name) {
|
|
100
118
|
if (typeof name !== 'string' ||
|
|
@@ -164,34 +182,87 @@ class Entity {
|
|
|
164
182
|
},
|
|
165
183
|
});
|
|
166
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Create or retrieve a new entity instance.
|
|
187
|
+
*
|
|
188
|
+
* Note that this will always return an entity, even if the GUID is not found.
|
|
189
|
+
*
|
|
190
|
+
* @param guid An optional GUID to retrieve.
|
|
191
|
+
*/
|
|
167
192
|
static async factory(guid) {
|
|
168
|
-
const cacheEntity = (guid
|
|
169
|
-
|
|
193
|
+
const cacheEntity = (guid
|
|
194
|
+
? this.nymph.getEntityFromCache(this, guid)
|
|
195
|
+
: null);
|
|
196
|
+
if (cacheEntity) {
|
|
197
|
+
return cacheEntity;
|
|
198
|
+
}
|
|
199
|
+
const entity = new this();
|
|
170
200
|
if (guid != null) {
|
|
171
|
-
|
|
201
|
+
entity.guid = guid;
|
|
202
|
+
entity.$isASleepingReference = true;
|
|
203
|
+
entity.$sleepingReference = [
|
|
204
|
+
'nymph_entity_reference',
|
|
205
|
+
guid,
|
|
206
|
+
this.class,
|
|
207
|
+
];
|
|
208
|
+
await entity.$wake();
|
|
172
209
|
}
|
|
173
210
|
return entity;
|
|
174
211
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
212
|
+
/**
|
|
213
|
+
* Create a new entity instance.
|
|
214
|
+
*/
|
|
215
|
+
static factorySync() {
|
|
216
|
+
return new this();
|
|
178
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Create a new sleeping reference instance.
|
|
220
|
+
*
|
|
221
|
+
* Sleeping references won't retrieve their data from the server until they
|
|
222
|
+
* are readied with `$wake()` or a parent's `$wakeAll()`.
|
|
223
|
+
*
|
|
224
|
+
* @param reference The Nymph Entity Reference to use to wake.
|
|
225
|
+
* @returns The new instance.
|
|
226
|
+
*/
|
|
179
227
|
static factoryReference(reference) {
|
|
180
|
-
const cacheEntity = (reference[1]
|
|
228
|
+
const cacheEntity = (reference[1]
|
|
229
|
+
? this.nymph.getEntityFromCache(this, reference[1])
|
|
230
|
+
: null);
|
|
181
231
|
const entity = cacheEntity || new this();
|
|
182
232
|
if (!cacheEntity) {
|
|
183
233
|
entity.$referenceSleep(reference);
|
|
184
234
|
}
|
|
185
235
|
return entity;
|
|
186
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Call a static method on the server version of this entity.
|
|
239
|
+
*
|
|
240
|
+
* @param method The name of the method.
|
|
241
|
+
* @param params The parameters to call the method with.
|
|
242
|
+
* @returns The value that the method on the server returned.
|
|
243
|
+
*/
|
|
187
244
|
static async serverCallStatic(method, params) {
|
|
188
|
-
const data = await this.nymph.serverCallStatic(this.class, method,
|
|
245
|
+
const data = await this.nymph.serverCallStatic(this.class, method,
|
|
246
|
+
// Turn the params into a real array, in case an arguments object was
|
|
247
|
+
// passed.
|
|
248
|
+
Array.prototype.slice.call(params));
|
|
189
249
|
return data.return;
|
|
190
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Call a static iterator method on the server version of this entity.
|
|
253
|
+
*
|
|
254
|
+
* @param method The name of the method.
|
|
255
|
+
* @param params The parameters to call the method with.
|
|
256
|
+
* @returns An iterator that iterates over values that the method on the server yields.
|
|
257
|
+
*/
|
|
258
|
+
static async serverCallStaticIterator(method, params) {
|
|
259
|
+
return await this.nymph.serverCallStaticIterator(this.class, method,
|
|
260
|
+
// Turn the params into a real array, in case an arguments object was
|
|
261
|
+
// passed.
|
|
262
|
+
Array.prototype.slice.call(params));
|
|
263
|
+
}
|
|
191
264
|
toJSON() {
|
|
192
|
-
|
|
193
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
194
|
-
}
|
|
265
|
+
this.$check();
|
|
195
266
|
const obj = {
|
|
196
267
|
class: this.constructor.class,
|
|
197
268
|
guid: this.guid,
|
|
@@ -228,18 +299,14 @@ class Entity {
|
|
|
228
299
|
return this;
|
|
229
300
|
}
|
|
230
301
|
$addTag(...tags) {
|
|
231
|
-
|
|
232
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
233
|
-
}
|
|
302
|
+
this.$check();
|
|
234
303
|
if (tags.length < 1) {
|
|
235
304
|
return;
|
|
236
305
|
}
|
|
237
306
|
this.tags = (0, utils_1.uniqueStrings)([...this.tags, ...tags]);
|
|
238
307
|
}
|
|
239
308
|
$arraySearch(array, strict = false) {
|
|
240
|
-
|
|
241
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
242
|
-
}
|
|
309
|
+
this.$check();
|
|
243
310
|
if (!Array.isArray(array)) {
|
|
244
311
|
return -1;
|
|
245
312
|
}
|
|
@@ -252,16 +319,12 @@ class Entity {
|
|
|
252
319
|
return -1;
|
|
253
320
|
}
|
|
254
321
|
async $delete() {
|
|
255
|
-
|
|
256
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
257
|
-
}
|
|
322
|
+
this.$check();
|
|
258
323
|
const guid = this.guid;
|
|
259
324
|
return (await this.$nymph.deleteEntity(this)) === guid;
|
|
260
325
|
}
|
|
261
326
|
$equals(object) {
|
|
262
|
-
|
|
263
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
264
|
-
}
|
|
327
|
+
this.$check();
|
|
265
328
|
if (!(object instanceof Entity)) {
|
|
266
329
|
return false;
|
|
267
330
|
}
|
|
@@ -270,9 +333,6 @@ class Entity {
|
|
|
270
333
|
return false;
|
|
271
334
|
}
|
|
272
335
|
}
|
|
273
|
-
if (object.constructor !== this.constructor) {
|
|
274
|
-
return false;
|
|
275
|
-
}
|
|
276
336
|
if (object.cdate !== this.cdate) {
|
|
277
337
|
return false;
|
|
278
338
|
}
|
|
@@ -281,14 +341,14 @@ class Entity {
|
|
|
281
341
|
}
|
|
282
342
|
const obData = (0, utils_1.sortObj)(object.toJSON());
|
|
283
343
|
obData.tags?.sort();
|
|
344
|
+
// obData.data = sortObj(obData.data);
|
|
284
345
|
const myData = (0, utils_1.sortObj)(this.toJSON());
|
|
285
346
|
myData.tags?.sort();
|
|
347
|
+
// myData.data = sortObj(myData.data);
|
|
286
348
|
return (0, lodash_1.isEqual)(obData, myData);
|
|
287
349
|
}
|
|
288
350
|
$getPatch() {
|
|
289
|
-
|
|
290
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
291
|
-
}
|
|
351
|
+
this.$check();
|
|
292
352
|
if (this.guid == null) {
|
|
293
353
|
throw new InvalidStateError("You can't make a patch from an unsaved entity.");
|
|
294
354
|
}
|
|
@@ -314,9 +374,7 @@ class Entity {
|
|
|
314
374
|
return patch;
|
|
315
375
|
}
|
|
316
376
|
$hasTag(...tags) {
|
|
317
|
-
|
|
318
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
319
|
-
}
|
|
377
|
+
this.$check();
|
|
320
378
|
if (!tags.length) {
|
|
321
379
|
return false;
|
|
322
380
|
}
|
|
@@ -331,9 +389,7 @@ class Entity {
|
|
|
331
389
|
return this.$arraySearch(array, strict) !== -1;
|
|
332
390
|
}
|
|
333
391
|
$is(object) {
|
|
334
|
-
|
|
335
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
336
|
-
}
|
|
392
|
+
this.$check();
|
|
337
393
|
if (!(object instanceof Entity)) {
|
|
338
394
|
return false;
|
|
339
395
|
}
|
|
@@ -346,29 +402,46 @@ class Entity {
|
|
|
346
402
|
else {
|
|
347
403
|
const obData = (0, utils_1.sortObj)(object.toJSON());
|
|
348
404
|
obData.tags?.sort();
|
|
405
|
+
// obData.data = sortObj(obData.data);
|
|
349
406
|
const myData = (0, utils_1.sortObj)(this.toJSON());
|
|
350
407
|
myData.tags?.sort();
|
|
408
|
+
// myData.data = sortObj(myData.data);
|
|
351
409
|
return (0, lodash_1.isEqual)(obData, myData);
|
|
352
410
|
}
|
|
353
411
|
}
|
|
354
412
|
async $patch() {
|
|
355
|
-
|
|
356
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
357
|
-
}
|
|
413
|
+
this.$check();
|
|
358
414
|
const mdate = this.mdate;
|
|
359
415
|
await this.$nymph.patchEntity(this);
|
|
360
|
-
return mdate
|
|
416
|
+
return mdate !== this.mdate;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Check if this is a sleeping reference and throw an error if so.
|
|
420
|
+
*/
|
|
421
|
+
$check() {
|
|
422
|
+
if (this.$isASleepingReference || this.$sleepingReference != null) {
|
|
423
|
+
throw new EntityIsSleepingReferenceError('This entity is in a sleeping reference state. You must use .$wake() to wake it.');
|
|
424
|
+
}
|
|
361
425
|
}
|
|
362
|
-
|
|
426
|
+
/**
|
|
427
|
+
* Check if this is a sleeping reference.
|
|
428
|
+
*/
|
|
429
|
+
$asleep() {
|
|
430
|
+
return this.$isASleepingReference || this.$sleepingReference != null;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Wake from a sleeping reference.
|
|
434
|
+
*/
|
|
435
|
+
$wake() {
|
|
363
436
|
if (!this.$isASleepingReference) {
|
|
364
|
-
this.$
|
|
437
|
+
this.$wakePromise = null;
|
|
365
438
|
return Promise.resolve(this);
|
|
366
439
|
}
|
|
367
440
|
if (this.$sleepingReference?.[1] == null) {
|
|
368
|
-
throw new InvalidStateError('Tried to
|
|
441
|
+
throw new InvalidStateError('Tried to wake a sleeping reference with no GUID.');
|
|
369
442
|
}
|
|
370
|
-
if (!this.$
|
|
371
|
-
this.$
|
|
443
|
+
if (!this.$wakePromise) {
|
|
444
|
+
this.$wakePromise = this.$nymph
|
|
372
445
|
.getEntityData({ class: this.constructor }, { type: '&', guid: this.$sleepingReference[1] })
|
|
373
446
|
.then((data) => {
|
|
374
447
|
if (data == null) {
|
|
@@ -378,15 +451,18 @@ class Entity {
|
|
|
378
451
|
return this.$init(data);
|
|
379
452
|
})
|
|
380
453
|
.finally(() => {
|
|
381
|
-
this.$
|
|
454
|
+
this.$wakePromise = null;
|
|
382
455
|
});
|
|
383
456
|
}
|
|
384
|
-
return this.$
|
|
457
|
+
return this.$wakePromise;
|
|
385
458
|
}
|
|
386
|
-
$
|
|
459
|
+
$wakeAll(level) {
|
|
387
460
|
return new Promise((resolve, reject) => {
|
|
388
|
-
|
|
461
|
+
// Run this once this entity is awake.
|
|
462
|
+
const wakeProps = () => {
|
|
389
463
|
let newLevel;
|
|
464
|
+
// If level is undefined, keep going forever, otherwise, stop once we've
|
|
465
|
+
// gone deep enough.
|
|
390
466
|
if (level !== undefined) {
|
|
391
467
|
newLevel = level - 1;
|
|
392
468
|
}
|
|
@@ -395,15 +471,16 @@ class Entity {
|
|
|
395
471
|
return;
|
|
396
472
|
}
|
|
397
473
|
const promises = [];
|
|
474
|
+
// Go through data looking for entities to wake.
|
|
398
475
|
for (let [key, value] of Object.entries(this.$data)) {
|
|
399
476
|
if (value instanceof Entity && value.$isASleepingReference) {
|
|
400
|
-
promises.push(value.$
|
|
477
|
+
promises.push(value.$wakeAll(newLevel));
|
|
401
478
|
}
|
|
402
479
|
else if (Array.isArray(value)) {
|
|
403
480
|
for (let i = 0; i < value.length; i++) {
|
|
404
481
|
if (value[i] instanceof Entity &&
|
|
405
482
|
value[i].$isASleepingReference) {
|
|
406
|
-
promises.push(value[i].$
|
|
483
|
+
promises.push(value[i].$wakeAll(newLevel));
|
|
407
484
|
}
|
|
408
485
|
}
|
|
409
486
|
}
|
|
@@ -416,10 +493,10 @@ class Entity {
|
|
|
416
493
|
}
|
|
417
494
|
};
|
|
418
495
|
if (this.$isASleepingReference) {
|
|
419
|
-
this.$
|
|
496
|
+
this.$wake().then(wakeProps, (errObj) => reject(errObj));
|
|
420
497
|
}
|
|
421
498
|
else {
|
|
422
|
-
|
|
499
|
+
wakeProps();
|
|
423
500
|
}
|
|
424
501
|
});
|
|
425
502
|
}
|
|
@@ -430,7 +507,7 @@ class Entity {
|
|
|
430
507
|
}
|
|
431
508
|
async $refresh() {
|
|
432
509
|
if (this.$isASleepingReference) {
|
|
433
|
-
await this.$
|
|
510
|
+
await this.$wake();
|
|
434
511
|
return true;
|
|
435
512
|
}
|
|
436
513
|
if (this.guid == null) {
|
|
@@ -446,22 +523,18 @@ class Entity {
|
|
|
446
523
|
return this.guid == null ? 0 : true;
|
|
447
524
|
}
|
|
448
525
|
$removeTag(...tags) {
|
|
449
|
-
|
|
450
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
451
|
-
}
|
|
526
|
+
this.$check();
|
|
452
527
|
this.tags = (0, lodash_1.difference)(this.tags, tags);
|
|
453
528
|
}
|
|
454
529
|
async $save() {
|
|
455
|
-
|
|
456
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
457
|
-
}
|
|
530
|
+
this.$check();
|
|
458
531
|
await this.$nymph.saveEntity(this);
|
|
459
532
|
return !!this.guid;
|
|
460
533
|
}
|
|
461
534
|
async $serverCall(method, params, stateless = false) {
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
535
|
+
this.$check();
|
|
536
|
+
// Turn the params into a real array, in case an arguments object was
|
|
537
|
+
// passed.
|
|
465
538
|
const paramArray = Array.prototype.slice.call(params);
|
|
466
539
|
const data = await this.$nymph.serverCall(this, method, paramArray, stateless);
|
|
467
540
|
if (!stateless && data.entity) {
|
|
@@ -483,9 +556,18 @@ class Entity {
|
|
|
483
556
|
];
|
|
484
557
|
}
|
|
485
558
|
}
|
|
486
|
-
|
|
559
|
+
/**
|
|
560
|
+
* The instance of Nymph to use for queries.
|
|
561
|
+
*/
|
|
487
562
|
Entity.nymph = {};
|
|
563
|
+
/**
|
|
564
|
+
* The lookup name for this entity.
|
|
565
|
+
*
|
|
566
|
+
* This is used for reference arrays (and sleeping references) and server
|
|
567
|
+
* requests.
|
|
568
|
+
*/
|
|
488
569
|
Entity.class = 'Entity';
|
|
570
|
+
exports.default = Entity;
|
|
489
571
|
class EntityIsSleepingReferenceError extends Error {
|
|
490
572
|
constructor(message) {
|
|
491
573
|
super(message);
|
package/lib/Entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|
package/lib/Entity.types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type Nymph from './Nymph';
|
|
2
|
+
import type Entity from './Entity';
|
|
2
3
|
export type ServerCallResponse = {
|
|
3
4
|
return: any;
|
|
4
5
|
entity?: EntityJson;
|
|
@@ -28,38 +29,172 @@ export type EntityPatch = {
|
|
|
28
29
|
addTags: string[];
|
|
29
30
|
removeTags: string[];
|
|
30
31
|
};
|
|
32
|
+
/**
|
|
33
|
+
* Data Object interface.
|
|
34
|
+
*
|
|
35
|
+
* Objects which hold data from some type of storage.
|
|
36
|
+
*/
|
|
31
37
|
export interface DataObjectInterface {
|
|
38
|
+
/**
|
|
39
|
+
* Search the array for this object and return the corresponding index.
|
|
40
|
+
*
|
|
41
|
+
* If `strict` is false, `is()` is used to compare. If `strict` is true,
|
|
42
|
+
* `equals()` is used.
|
|
43
|
+
*
|
|
44
|
+
* @param array The array to search.
|
|
45
|
+
* @param strict Whether to use stronger comparison.
|
|
46
|
+
* @returns The index if the object is in the array, -1 if it isn't.
|
|
47
|
+
*/
|
|
32
48
|
$arraySearch(array: any[], strict?: boolean): number;
|
|
49
|
+
/**
|
|
50
|
+
* Delete the object from storage.
|
|
51
|
+
*
|
|
52
|
+
* @returns True on success, false on failure.
|
|
53
|
+
*/
|
|
33
54
|
$delete(): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Perform a more strict comparison of this object to another.
|
|
57
|
+
*
|
|
58
|
+
* @param object The object to compare.
|
|
59
|
+
* @returns True or false.
|
|
60
|
+
*/
|
|
34
61
|
$equals(object: any): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Check whether this object is in an array.
|
|
64
|
+
*
|
|
65
|
+
* If `strict` is false, `is()` is used to compare. If `strict` is true,
|
|
66
|
+
* `equals()` is used.
|
|
67
|
+
*
|
|
68
|
+
* @param array The array to search.
|
|
69
|
+
* @param strict Whether to use stronger comparison.
|
|
70
|
+
* @returns True if the object is in the array, false if it isn't.
|
|
71
|
+
*/
|
|
35
72
|
$inArray(array: any[], strict?: boolean): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Perform a less strict comparison of this object to another.
|
|
75
|
+
*
|
|
76
|
+
* @param object The object to compare.
|
|
77
|
+
* @returns True or false.
|
|
78
|
+
*/
|
|
36
79
|
$is(object: any): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Save the object's dirty data to storage.
|
|
82
|
+
*
|
|
83
|
+
* @returns True on success, false on failure.
|
|
84
|
+
*/
|
|
37
85
|
$patch(): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Refresh the object from storage. (Bypasses Nymph's cache.)
|
|
88
|
+
*
|
|
89
|
+
* If the object has been deleted from storage, the database cannot be
|
|
90
|
+
* reached, or a database error occurs, `refresh()` will return 0.
|
|
91
|
+
*
|
|
92
|
+
* @returns False if the data has not been saved, 0 if it can't be refreshed, true on success.
|
|
93
|
+
*/
|
|
38
94
|
$refresh(): Promise<boolean | 0>;
|
|
95
|
+
/**
|
|
96
|
+
* Save the object to storage.
|
|
97
|
+
*
|
|
98
|
+
* @returns True on success, false on failure.
|
|
99
|
+
*/
|
|
39
100
|
$save(): Promise<boolean>;
|
|
101
|
+
/**
|
|
102
|
+
* The object's data.
|
|
103
|
+
*/
|
|
40
104
|
[k: string]: any;
|
|
41
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Entity interface.
|
|
108
|
+
*/
|
|
42
109
|
export interface EntityInterface extends DataObjectInterface {
|
|
110
|
+
/**
|
|
111
|
+
* The instance of Nymph to use for queries.
|
|
112
|
+
*/
|
|
43
113
|
$nymph: Nymph;
|
|
114
|
+
/**
|
|
115
|
+
* The entity's Globally Unique ID.
|
|
116
|
+
*
|
|
117
|
+
* This is a 12 byte number represented as a lower case HEX string (24
|
|
118
|
+
* characters).
|
|
119
|
+
*/
|
|
44
120
|
guid: string | null;
|
|
121
|
+
/**
|
|
122
|
+
* The creation date of the entity as a Unix timestamp in milliseconds.
|
|
123
|
+
*/
|
|
45
124
|
cdate: number | null;
|
|
125
|
+
/**
|
|
126
|
+
* The modified date of the entity as a Unix timestamp in milliseconds.
|
|
127
|
+
*/
|
|
46
128
|
mdate: number | null;
|
|
129
|
+
/**
|
|
130
|
+
* Array of the entity's tags.
|
|
131
|
+
*/
|
|
47
132
|
tags: string[];
|
|
133
|
+
/**
|
|
134
|
+
* Add one or more tags.
|
|
135
|
+
*
|
|
136
|
+
* @param tags List of tags.
|
|
137
|
+
*/
|
|
48
138
|
$addTag(...tags: string[]): void;
|
|
139
|
+
/**
|
|
140
|
+
* Get a patch of this entity's dirty data to be applied on the server.
|
|
141
|
+
*/
|
|
49
142
|
$getPatch(): EntityPatch;
|
|
143
|
+
/**
|
|
144
|
+
* Check that the entity has all of the given tags.
|
|
145
|
+
*
|
|
146
|
+
* @param tags List of tags.
|
|
147
|
+
* @returns True or false.
|
|
148
|
+
*/
|
|
50
149
|
$hasTag(...tags: string[]): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Initialize this entity from a JSON representation.
|
|
152
|
+
*
|
|
153
|
+
* @param entityJson The entity JSON.
|
|
154
|
+
*/
|
|
51
155
|
$init(entityJson: EntityJson | null): EntityInterface;
|
|
52
|
-
|
|
53
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Retrieve this entity's data from the server.
|
|
158
|
+
*
|
|
159
|
+
* @returns The entity.
|
|
160
|
+
*/
|
|
161
|
+
$wake(): Promise<EntityInterface>;
|
|
162
|
+
/**
|
|
163
|
+
* Ready this entity's data, and the data of entity's within this one's.
|
|
164
|
+
*
|
|
165
|
+
* @param level The number of levels deep to wake. If undefined, it will keep going until there are no more entities. (Careful of infinite loops.)
|
|
166
|
+
* @returns The entity.
|
|
167
|
+
*/
|
|
168
|
+
$wakeAll(level?: number): Promise<EntityInterface>;
|
|
169
|
+
/**
|
|
170
|
+
* Remove one or more tags.
|
|
171
|
+
*
|
|
172
|
+
* @param tags List of tags.
|
|
173
|
+
*/
|
|
54
174
|
$removeTag(...tags: string[]): void;
|
|
175
|
+
/**
|
|
176
|
+
* Call an instance method on the server version of this entity.
|
|
177
|
+
*
|
|
178
|
+
* The entity's data will be sent up to the server as well, so the server's
|
|
179
|
+
* state can match the client's state. It won't be propagated into the DB,
|
|
180
|
+
* though.
|
|
181
|
+
*
|
|
182
|
+
* @param method The name of the method.
|
|
183
|
+
* @param params The parameters to call the method with.
|
|
184
|
+
* @param stateless Whether the server should return, and the client update, the data in the entity after the method has run.
|
|
185
|
+
* @returns The value that the method on the server returned.
|
|
186
|
+
*/
|
|
55
187
|
$serverCall(method: string, params: Iterable<any>, stateless: boolean): Promise<any>;
|
|
188
|
+
/**
|
|
189
|
+
* Return a Nymph Entity Reference for this entity.
|
|
190
|
+
*
|
|
191
|
+
* If the entity hasn't been saved yet (and has no GUID), it will be
|
|
192
|
+
* returned instead.
|
|
193
|
+
*
|
|
194
|
+
* @returns A Nymph Entity Reference array as an unsaved entity.
|
|
195
|
+
*/
|
|
56
196
|
$toReference(): EntityReference | EntityInterface;
|
|
57
197
|
}
|
|
58
|
-
export type EntityConstructor = (new () =>
|
|
59
|
-
|
|
60
|
-
class: string;
|
|
61
|
-
factory(guid?: string): Promise<EntityInterface>;
|
|
62
|
-
factorySync(guid?: string): EntityInterface;
|
|
63
|
-
factoryReference(reference: EntityReference): EntityInterface;
|
|
64
|
-
serverCallStatic(method: string, params: Iterable<any>): Promise<any>;
|
|
198
|
+
export type EntityConstructor<D extends EntityData = EntityData, E extends Entity<D> = Entity<D>> = (new (...args: any[]) => E) & {
|
|
199
|
+
[k in keyof typeof Entity]: (typeof Entity)[k];
|
|
65
200
|
};
|