@nymphjs/client 1.0.0-beta.9 → 1.0.0-beta.91
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 +378 -0
- package/README.md +6 -6
- package/asyncitertest.js +53 -0
- package/dist/Entity.d.ts +156 -0
- package/{lib → dist}/Entity.js +202 -104
- package/dist/Entity.js.map +1 -0
- package/dist/Entity.types.d.ts +218 -0
- package/dist/Entity.types.js +2 -0
- package/{lib → dist}/EntityWeakCache.d.ts +1 -1
- package/{lib → dist}/EntityWeakCache.js +5 -9
- 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/{lib → dist}/Nymph.d.ts +44 -11
- package/{lib → dist}/Nymph.js +118 -39
- package/dist/Nymph.js.map +1 -0
- package/{lib → dist}/Nymph.types.d.ts +74 -2
- package/dist/Nymph.types.js +2 -0
- package/{lib → dist}/PubSub.d.ts +16 -10
- package/{lib → dist}/PubSub.js +172 -108
- package/dist/PubSub.js.map +1 -0
- package/{lib → dist}/PubSub.types.d.ts +8 -3
- package/dist/PubSub.types.js +2 -0
- package/{lib → dist}/entityRefresh.d.ts +1 -1
- package/{lib → dist}/entityRefresh.js +21 -13
- 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/{lib → dist}/utils.d.ts +1 -1
- package/{lib → dist}/utils.js +28 -21
- package/dist/utils.js.map +1 -0
- package/jest.config.js +11 -2
- package/package.json +23 -27
- package/src/Entity.ts +170 -104
- package/src/Entity.types.ts +29 -47
- package/src/EntityWeakCache.ts +8 -6
- package/src/HttpRequester.ts +308 -35
- package/src/Nymph.ts +134 -70
- package/src/Nymph.types.ts +41 -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/lib/Entity.d.ts +0 -51
- package/lib/Entity.js.map +0 -1
- package/lib/Entity.types.d.ts +0 -65
- package/lib/Entity.types.js +0 -3
- package/lib/EntityWeakCache.js.map +0 -1
- package/lib/HttpRequester.d.ts +0 -42
- package/lib/HttpRequester.js +0 -160
- package/lib/HttpRequester.js.map +0 -1
- package/lib/Nymph.js.map +0 -1
- package/lib/Nymph.types.js +0 -3
- package/lib/PubSub.js.map +0 -1
- package/lib/PubSub.types.js +0 -3
- package/lib/entityRefresh.js.map +0 -1
- package/lib/index.d.ts +0 -13
- package/lib/index.js +0 -34
- package/lib/index.js.map +0 -1
- package/lib/utils.js.map +0 -1
- package/webpack.config.js +0 -28
- /package/{lib → dist}/Entity.types.js.map +0 -0
- /package/{lib → dist}/Nymph.types.js.map +0 -0
- /package/{lib → dist}/PubSub.types.js.map +0 -0
package/{lib → dist}/Entity.js
RENAMED
|
@@ -1,21 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import { difference, isEqual } from 'lodash-es';
|
|
2
|
+
import { uniqueStrings, entitiesToReferences, referencesToEntities, sortObj, } from './utils.js';
|
|
3
|
+
export default class Entity {
|
|
4
|
+
/**
|
|
5
|
+
* The instance of Nymph to use for queries.
|
|
6
|
+
*/
|
|
7
|
+
static nymph = {};
|
|
8
|
+
/**
|
|
9
|
+
* The lookup name for this entity.
|
|
10
|
+
*
|
|
11
|
+
* This is used for reference arrays (and sleeping references) and server
|
|
12
|
+
* requests.
|
|
13
|
+
*/
|
|
14
|
+
static class = 'Entity';
|
|
15
|
+
/**
|
|
16
|
+
* The instance of Nymph to use for queries.
|
|
17
|
+
*/
|
|
18
|
+
$nymph;
|
|
19
|
+
/**
|
|
20
|
+
* The entity's Globally Unique ID.
|
|
21
|
+
*/
|
|
22
|
+
guid = null;
|
|
23
|
+
/**
|
|
24
|
+
* The creation date of the entity as a high precision Unix timestamp.
|
|
25
|
+
*/
|
|
26
|
+
cdate = null;
|
|
27
|
+
/**
|
|
28
|
+
* The modified date of the entity as a high precision Unix timestamp.
|
|
29
|
+
*/
|
|
30
|
+
mdate = null;
|
|
31
|
+
/**
|
|
32
|
+
* Array of the entity's tags.
|
|
33
|
+
*/
|
|
34
|
+
tags = [];
|
|
35
|
+
/**
|
|
36
|
+
* Array of the entity's original tags (for patch).
|
|
37
|
+
*/
|
|
38
|
+
$originalTags = [];
|
|
39
|
+
/**
|
|
40
|
+
* A map of props to whether they're dirty (for patch).
|
|
41
|
+
*/
|
|
42
|
+
$dirty = {};
|
|
43
|
+
/**
|
|
44
|
+
* The data proxy handler.
|
|
45
|
+
*/
|
|
46
|
+
$dataHandler;
|
|
47
|
+
/**
|
|
48
|
+
* The actual data store.
|
|
49
|
+
*/
|
|
50
|
+
$dataStore;
|
|
51
|
+
/**
|
|
52
|
+
* The data proxy object.
|
|
53
|
+
*/
|
|
54
|
+
$data;
|
|
55
|
+
/**
|
|
56
|
+
* Whether this instance is a sleeping reference.
|
|
57
|
+
*/
|
|
58
|
+
$isASleepingReference = false;
|
|
59
|
+
/**
|
|
60
|
+
* The reference to use to wake.
|
|
61
|
+
*/
|
|
62
|
+
$sleepingReference = null;
|
|
63
|
+
/**
|
|
64
|
+
* A promise that resolved when the entity's data is wake.
|
|
65
|
+
*/
|
|
66
|
+
$wakePromise = null;
|
|
67
|
+
/**
|
|
68
|
+
* Initialize an entity.
|
|
69
|
+
*/
|
|
70
|
+
constructor(..._rest) {
|
|
19
71
|
this.$nymph = this.constructor.nymph;
|
|
20
72
|
this.$dataHandler = {
|
|
21
73
|
has: (data, name) => {
|
|
@@ -85,16 +137,6 @@ class Entity {
|
|
|
85
137
|
};
|
|
86
138
|
this.$dataStore = {};
|
|
87
139
|
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
140
|
return new Proxy(this, {
|
|
99
141
|
has(entity, name) {
|
|
100
142
|
if (typeof name !== 'string' ||
|
|
@@ -164,34 +206,87 @@ class Entity {
|
|
|
164
206
|
},
|
|
165
207
|
});
|
|
166
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Create or retrieve a new entity instance.
|
|
211
|
+
*
|
|
212
|
+
* Note that this will always return an entity, even if the GUID is not found.
|
|
213
|
+
*
|
|
214
|
+
* @param guid An optional GUID to retrieve.
|
|
215
|
+
*/
|
|
167
216
|
static async factory(guid) {
|
|
168
|
-
const cacheEntity = (guid
|
|
169
|
-
|
|
217
|
+
const cacheEntity = (guid
|
|
218
|
+
? this.nymph.getEntityFromCache(this, guid)
|
|
219
|
+
: null);
|
|
220
|
+
if (cacheEntity) {
|
|
221
|
+
return cacheEntity;
|
|
222
|
+
}
|
|
223
|
+
const entity = new this();
|
|
170
224
|
if (guid != null) {
|
|
171
|
-
|
|
225
|
+
entity.guid = guid;
|
|
226
|
+
entity.$isASleepingReference = true;
|
|
227
|
+
entity.$sleepingReference = [
|
|
228
|
+
'nymph_entity_reference',
|
|
229
|
+
guid,
|
|
230
|
+
this.class,
|
|
231
|
+
];
|
|
232
|
+
await entity.$wake();
|
|
172
233
|
}
|
|
173
234
|
return entity;
|
|
174
235
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
236
|
+
/**
|
|
237
|
+
* Create a new entity instance.
|
|
238
|
+
*/
|
|
239
|
+
static factorySync() {
|
|
240
|
+
return new this();
|
|
178
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Create a new sleeping reference instance.
|
|
244
|
+
*
|
|
245
|
+
* Sleeping references won't retrieve their data from the server until they
|
|
246
|
+
* are readied with `$wake()` or a parent's `$wakeAll()`.
|
|
247
|
+
*
|
|
248
|
+
* @param reference The Nymph Entity Reference to use to wake.
|
|
249
|
+
* @returns The new instance.
|
|
250
|
+
*/
|
|
179
251
|
static factoryReference(reference) {
|
|
180
|
-
const cacheEntity = (reference[1]
|
|
252
|
+
const cacheEntity = (reference[1]
|
|
253
|
+
? this.nymph.getEntityFromCache(this, reference[1])
|
|
254
|
+
: null);
|
|
181
255
|
const entity = cacheEntity || new this();
|
|
182
256
|
if (!cacheEntity) {
|
|
183
257
|
entity.$referenceSleep(reference);
|
|
184
258
|
}
|
|
185
259
|
return entity;
|
|
186
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Call a static method on the server version of this entity.
|
|
263
|
+
*
|
|
264
|
+
* @param method The name of the method.
|
|
265
|
+
* @param params The parameters to call the method with.
|
|
266
|
+
* @returns The value that the method on the server returned.
|
|
267
|
+
*/
|
|
187
268
|
static async serverCallStatic(method, params) {
|
|
188
|
-
const data = await this.nymph.serverCallStatic(this.class, method,
|
|
269
|
+
const data = await this.nymph.serverCallStatic(this.class, method,
|
|
270
|
+
// Turn the params into a real array, in case an arguments object was
|
|
271
|
+
// passed.
|
|
272
|
+
Array.prototype.slice.call(params));
|
|
189
273
|
return data.return;
|
|
190
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Call a static iterator method on the server version of this entity.
|
|
277
|
+
*
|
|
278
|
+
* @param method The name of the method.
|
|
279
|
+
* @param params The parameters to call the method with.
|
|
280
|
+
* @returns An iterator that iterates over values that the method on the server yields.
|
|
281
|
+
*/
|
|
282
|
+
static async serverCallStaticIterator(method, params) {
|
|
283
|
+
return await this.nymph.serverCallStaticIterator(this.class, method,
|
|
284
|
+
// Turn the params into a real array, in case an arguments object was
|
|
285
|
+
// passed.
|
|
286
|
+
Array.prototype.slice.call(params));
|
|
287
|
+
}
|
|
191
288
|
toJSON() {
|
|
192
|
-
|
|
193
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
194
|
-
}
|
|
289
|
+
this.$check();
|
|
195
290
|
const obj = {
|
|
196
291
|
class: this.constructor.class,
|
|
197
292
|
guid: this.guid,
|
|
@@ -201,7 +296,7 @@ class Entity {
|
|
|
201
296
|
data: {},
|
|
202
297
|
};
|
|
203
298
|
for (let [key, value] of Object.entries(this.$dataStore)) {
|
|
204
|
-
obj.data[key] =
|
|
299
|
+
obj.data[key] = entitiesToReferences(value);
|
|
205
300
|
}
|
|
206
301
|
return obj;
|
|
207
302
|
}
|
|
@@ -220,7 +315,7 @@ class Entity {
|
|
|
220
315
|
this.$dataStore = Object.entries(entityJson.data)
|
|
221
316
|
.map(([key, value]) => {
|
|
222
317
|
this.$dirty[key] = false;
|
|
223
|
-
return { key, value:
|
|
318
|
+
return { key, value: referencesToEntities(value, this.$nymph) };
|
|
224
319
|
})
|
|
225
320
|
.reduce((obj, { key, value }) => Object.assign(obj, { [key]: value }), {});
|
|
226
321
|
this.$data = new Proxy(this.$dataStore, this.$dataHandler);
|
|
@@ -228,18 +323,14 @@ class Entity {
|
|
|
228
323
|
return this;
|
|
229
324
|
}
|
|
230
325
|
$addTag(...tags) {
|
|
231
|
-
|
|
232
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
233
|
-
}
|
|
326
|
+
this.$check();
|
|
234
327
|
if (tags.length < 1) {
|
|
235
328
|
return;
|
|
236
329
|
}
|
|
237
|
-
this.tags =
|
|
330
|
+
this.tags = uniqueStrings([...this.tags, ...tags]);
|
|
238
331
|
}
|
|
239
332
|
$arraySearch(array, strict = false) {
|
|
240
|
-
|
|
241
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
242
|
-
}
|
|
333
|
+
this.$check();
|
|
243
334
|
if (!Array.isArray(array)) {
|
|
244
335
|
return -1;
|
|
245
336
|
}
|
|
@@ -252,16 +343,12 @@ class Entity {
|
|
|
252
343
|
return -1;
|
|
253
344
|
}
|
|
254
345
|
async $delete() {
|
|
255
|
-
|
|
256
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
257
|
-
}
|
|
346
|
+
this.$check();
|
|
258
347
|
const guid = this.guid;
|
|
259
348
|
return (await this.$nymph.deleteEntity(this)) === guid;
|
|
260
349
|
}
|
|
261
350
|
$equals(object) {
|
|
262
|
-
|
|
263
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
264
|
-
}
|
|
351
|
+
this.$check();
|
|
265
352
|
if (!(object instanceof Entity)) {
|
|
266
353
|
return false;
|
|
267
354
|
}
|
|
@@ -276,16 +363,16 @@ class Entity {
|
|
|
276
363
|
if (object.mdate !== this.mdate) {
|
|
277
364
|
return false;
|
|
278
365
|
}
|
|
279
|
-
const obData =
|
|
366
|
+
const obData = sortObj(object.toJSON());
|
|
280
367
|
obData.tags?.sort();
|
|
281
|
-
|
|
368
|
+
// obData.data = sortObj(obData.data);
|
|
369
|
+
const myData = sortObj(this.toJSON());
|
|
282
370
|
myData.tags?.sort();
|
|
283
|
-
|
|
371
|
+
// myData.data = sortObj(myData.data);
|
|
372
|
+
return isEqual(obData, myData);
|
|
284
373
|
}
|
|
285
374
|
$getPatch() {
|
|
286
|
-
|
|
287
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
288
|
-
}
|
|
375
|
+
this.$check();
|
|
289
376
|
if (this.guid == null) {
|
|
290
377
|
throw new InvalidStateError("You can't make a patch from an unsaved entity.");
|
|
291
378
|
}
|
|
@@ -301,7 +388,7 @@ class Entity {
|
|
|
301
388
|
for (let [key, dirty] of Object.entries(this.$dirty)) {
|
|
302
389
|
if (dirty) {
|
|
303
390
|
if (key in this.$data) {
|
|
304
|
-
patch.set[key] =
|
|
391
|
+
patch.set[key] = entitiesToReferences(this.$data[key]);
|
|
305
392
|
}
|
|
306
393
|
else {
|
|
307
394
|
patch.unset.push(key);
|
|
@@ -311,9 +398,7 @@ class Entity {
|
|
|
311
398
|
return patch;
|
|
312
399
|
}
|
|
313
400
|
$hasTag(...tags) {
|
|
314
|
-
|
|
315
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
316
|
-
}
|
|
401
|
+
this.$check();
|
|
317
402
|
if (!tags.length) {
|
|
318
403
|
return false;
|
|
319
404
|
}
|
|
@@ -324,13 +409,14 @@ class Entity {
|
|
|
324
409
|
}
|
|
325
410
|
return true;
|
|
326
411
|
}
|
|
412
|
+
$isDirty(property) {
|
|
413
|
+
return property in this.$dirty ? this.$dirty[property] : null;
|
|
414
|
+
}
|
|
327
415
|
$inArray(array, strict = false) {
|
|
328
416
|
return this.$arraySearch(array, strict) !== -1;
|
|
329
417
|
}
|
|
330
418
|
$is(object) {
|
|
331
|
-
|
|
332
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
333
|
-
}
|
|
419
|
+
this.$check();
|
|
334
420
|
if (!(object instanceof Entity)) {
|
|
335
421
|
return false;
|
|
336
422
|
}
|
|
@@ -341,31 +427,48 @@ class Entity {
|
|
|
341
427
|
return false;
|
|
342
428
|
}
|
|
343
429
|
else {
|
|
344
|
-
const obData =
|
|
430
|
+
const obData = sortObj(object.toJSON());
|
|
345
431
|
obData.tags?.sort();
|
|
346
|
-
|
|
432
|
+
// obData.data = sortObj(obData.data);
|
|
433
|
+
const myData = sortObj(this.toJSON());
|
|
347
434
|
myData.tags?.sort();
|
|
348
|
-
|
|
435
|
+
// myData.data = sortObj(myData.data);
|
|
436
|
+
return isEqual(obData, myData);
|
|
349
437
|
}
|
|
350
438
|
}
|
|
351
439
|
async $patch() {
|
|
352
|
-
|
|
353
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
354
|
-
}
|
|
440
|
+
this.$check();
|
|
355
441
|
const mdate = this.mdate;
|
|
356
442
|
await this.$nymph.patchEntity(this);
|
|
357
443
|
return mdate !== this.mdate;
|
|
358
444
|
}
|
|
359
|
-
|
|
445
|
+
/**
|
|
446
|
+
* Check if this is a sleeping reference and throw an error if so.
|
|
447
|
+
*/
|
|
448
|
+
$check() {
|
|
449
|
+
if (this.$isASleepingReference || this.$sleepingReference != null) {
|
|
450
|
+
throw new EntityIsSleepingReferenceError('This entity is in a sleeping reference state. You must use .$wake() to wake it.');
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Check if this is a sleeping reference.
|
|
455
|
+
*/
|
|
456
|
+
$asleep() {
|
|
457
|
+
return this.$isASleepingReference || this.$sleepingReference != null;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Wake from a sleeping reference.
|
|
461
|
+
*/
|
|
462
|
+
$wake() {
|
|
360
463
|
if (!this.$isASleepingReference) {
|
|
361
|
-
this.$
|
|
464
|
+
this.$wakePromise = null;
|
|
362
465
|
return Promise.resolve(this);
|
|
363
466
|
}
|
|
364
467
|
if (this.$sleepingReference?.[1] == null) {
|
|
365
|
-
throw new InvalidStateError('Tried to
|
|
468
|
+
throw new InvalidStateError('Tried to wake a sleeping reference with no GUID.');
|
|
366
469
|
}
|
|
367
|
-
if (!this.$
|
|
368
|
-
this.$
|
|
470
|
+
if (!this.$wakePromise) {
|
|
471
|
+
this.$wakePromise = this.$nymph
|
|
369
472
|
.getEntityData({ class: this.constructor }, { type: '&', guid: this.$sleepingReference[1] })
|
|
370
473
|
.then((data) => {
|
|
371
474
|
if (data == null) {
|
|
@@ -375,15 +478,18 @@ class Entity {
|
|
|
375
478
|
return this.$init(data);
|
|
376
479
|
})
|
|
377
480
|
.finally(() => {
|
|
378
|
-
this.$
|
|
481
|
+
this.$wakePromise = null;
|
|
379
482
|
});
|
|
380
483
|
}
|
|
381
|
-
return this.$
|
|
484
|
+
return this.$wakePromise;
|
|
382
485
|
}
|
|
383
|
-
$
|
|
486
|
+
$wakeAll(level) {
|
|
384
487
|
return new Promise((resolve, reject) => {
|
|
385
|
-
|
|
488
|
+
// Run this once this entity is awake.
|
|
489
|
+
const wakeProps = () => {
|
|
386
490
|
let newLevel;
|
|
491
|
+
// If level is undefined, keep going forever, otherwise, stop once we've
|
|
492
|
+
// gone deep enough.
|
|
387
493
|
if (level !== undefined) {
|
|
388
494
|
newLevel = level - 1;
|
|
389
495
|
}
|
|
@@ -392,15 +498,16 @@ class Entity {
|
|
|
392
498
|
return;
|
|
393
499
|
}
|
|
394
500
|
const promises = [];
|
|
501
|
+
// Go through data looking for entities to wake.
|
|
395
502
|
for (let [key, value] of Object.entries(this.$data)) {
|
|
396
503
|
if (value instanceof Entity && value.$isASleepingReference) {
|
|
397
|
-
promises.push(value.$
|
|
504
|
+
promises.push(value.$wakeAll(newLevel));
|
|
398
505
|
}
|
|
399
506
|
else if (Array.isArray(value)) {
|
|
400
507
|
for (let i = 0; i < value.length; i++) {
|
|
401
508
|
if (value[i] instanceof Entity &&
|
|
402
509
|
value[i].$isASleepingReference) {
|
|
403
|
-
promises.push(value[i].$
|
|
510
|
+
promises.push(value[i].$wakeAll(newLevel));
|
|
404
511
|
}
|
|
405
512
|
}
|
|
406
513
|
}
|
|
@@ -413,10 +520,10 @@ class Entity {
|
|
|
413
520
|
}
|
|
414
521
|
};
|
|
415
522
|
if (this.$isASleepingReference) {
|
|
416
|
-
this.$
|
|
523
|
+
this.$wake().then(wakeProps, (errObj) => reject(errObj));
|
|
417
524
|
}
|
|
418
525
|
else {
|
|
419
|
-
|
|
526
|
+
wakeProps();
|
|
420
527
|
}
|
|
421
528
|
});
|
|
422
529
|
}
|
|
@@ -427,7 +534,7 @@ class Entity {
|
|
|
427
534
|
}
|
|
428
535
|
async $refresh() {
|
|
429
536
|
if (this.$isASleepingReference) {
|
|
430
|
-
await this.$
|
|
537
|
+
await this.$wake();
|
|
431
538
|
return true;
|
|
432
539
|
}
|
|
433
540
|
if (this.guid == null) {
|
|
@@ -443,22 +550,18 @@ class Entity {
|
|
|
443
550
|
return this.guid == null ? 0 : true;
|
|
444
551
|
}
|
|
445
552
|
$removeTag(...tags) {
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
449
|
-
this.tags = (0, lodash_1.difference)(this.tags, tags);
|
|
553
|
+
this.$check();
|
|
554
|
+
this.tags = difference(this.tags, tags);
|
|
450
555
|
}
|
|
451
556
|
async $save() {
|
|
452
|
-
|
|
453
|
-
throw new EntityIsSleepingReferenceError(sleepErr);
|
|
454
|
-
}
|
|
557
|
+
this.$check();
|
|
455
558
|
await this.$nymph.saveEntity(this);
|
|
456
559
|
return !!this.guid;
|
|
457
560
|
}
|
|
458
561
|
async $serverCall(method, params, stateless = false) {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
562
|
+
this.$check();
|
|
563
|
+
// Turn the params into a real array, in case an arguments object was
|
|
564
|
+
// passed.
|
|
462
565
|
const paramArray = Array.prototype.slice.call(params);
|
|
463
566
|
const data = await this.$nymph.serverCall(this, method, paramArray, stateless);
|
|
464
567
|
if (!stateless && data.entity) {
|
|
@@ -480,21 +583,16 @@ class Entity {
|
|
|
480
583
|
];
|
|
481
584
|
}
|
|
482
585
|
}
|
|
483
|
-
|
|
484
|
-
Entity.nymph = {};
|
|
485
|
-
Entity.class = 'Entity';
|
|
486
|
-
class EntityIsSleepingReferenceError extends Error {
|
|
586
|
+
export class EntityIsSleepingReferenceError extends Error {
|
|
487
587
|
constructor(message) {
|
|
488
588
|
super(message);
|
|
489
589
|
this.name = 'EntityIsSleepingReferenceError';
|
|
490
590
|
}
|
|
491
591
|
}
|
|
492
|
-
|
|
493
|
-
class InvalidStateError extends Error {
|
|
592
|
+
export class InvalidStateError extends Error {
|
|
494
593
|
constructor(message) {
|
|
495
594
|
super(message);
|
|
496
595
|
this.name = 'InvalidStateError';
|
|
497
596
|
}
|
|
498
597
|
}
|
|
499
|
-
exports.InvalidStateError = InvalidStateError;
|
|
500
598
|
//# sourceMappingURL=Entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|