@nymphjs/client 1.0.0-beta.95 → 1.0.0-beta.97
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 +8 -0
- package/package.json +2 -2
- package/lib/Entity.d.ts +0 -155
- package/lib/Entity.js +0 -585
- package/lib/Entity.js.map +0 -1
- package/lib/Entity.types.d.ts +0 -200
- package/lib/Entity.types.js +0 -3
- package/lib/Entity.types.js.map +0 -1
- package/lib/EntityWeakCache.d.ts +0 -6
- package/lib/EntityWeakCache.js +0 -32
- package/lib/EntityWeakCache.js.map +0 -1
- package/lib/HttpRequester.d.ts +0 -78
- package/lib/HttpRequester.js +0 -375
- package/lib/HttpRequester.js.map +0 -1
- package/lib/Nymph.d.ts +0 -111
- package/lib/Nymph.js +0 -426
- package/lib/Nymph.js.map +0 -1
- package/lib/Nymph.types.d.ts +0 -169
- package/lib/Nymph.types.js +0 -3
- package/lib/Nymph.types.js.map +0 -1
- package/lib/PubSub.d.ts +0 -63
- package/lib/PubSub.js +0 -596
- package/lib/PubSub.js.map +0 -1
- package/lib/PubSub.types.d.ts +0 -31
- package/lib/PubSub.types.js +0 -3
- package/lib/PubSub.types.js.map +0 -1
- package/lib/entityRefresh.d.ts +0 -5
- package/lib/entityRefresh.js +0 -83
- 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.d.ts +0 -8
- package/lib/utils.js +0 -97
- package/lib/utils.js.map +0 -1
package/lib/Entity.js
DELETED
|
@@ -1,585 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InvalidStateError = exports.EntityIsSleepingReferenceError = void 0;
|
|
4
|
-
const lodash_1 = require("lodash");
|
|
5
|
-
const utils_1 = require("./utils");
|
|
6
|
-
class Entity {
|
|
7
|
-
/**
|
|
8
|
-
* Initialize an entity.
|
|
9
|
-
*/
|
|
10
|
-
constructor(..._rest) {
|
|
11
|
-
/**
|
|
12
|
-
* The entity's Globally Unique ID.
|
|
13
|
-
*/
|
|
14
|
-
this.guid = null;
|
|
15
|
-
/**
|
|
16
|
-
* The creation date of the entity as a high precision Unix timestamp.
|
|
17
|
-
*/
|
|
18
|
-
this.cdate = null;
|
|
19
|
-
/**
|
|
20
|
-
* The modified date of the entity as a high precision Unix timestamp.
|
|
21
|
-
*/
|
|
22
|
-
this.mdate = null;
|
|
23
|
-
/**
|
|
24
|
-
* Array of the entity's tags.
|
|
25
|
-
*/
|
|
26
|
-
this.tags = [];
|
|
27
|
-
/**
|
|
28
|
-
* Array of the entity's original tags (for patch).
|
|
29
|
-
*/
|
|
30
|
-
this.$originalTags = [];
|
|
31
|
-
/**
|
|
32
|
-
* A map of props to whether they're dirty (for patch).
|
|
33
|
-
*/
|
|
34
|
-
this.$dirty = {};
|
|
35
|
-
/**
|
|
36
|
-
* Whether this instance is a sleeping reference.
|
|
37
|
-
*/
|
|
38
|
-
this.$isASleepingReference = false;
|
|
39
|
-
/**
|
|
40
|
-
* The reference to use to wake.
|
|
41
|
-
*/
|
|
42
|
-
this.$sleepingReference = null;
|
|
43
|
-
/**
|
|
44
|
-
* A promise that resolved when the entity's data is wake.
|
|
45
|
-
*/
|
|
46
|
-
this.$wakePromise = null;
|
|
47
|
-
this.$nymph = this.constructor.nymph;
|
|
48
|
-
this.$dataHandler = {
|
|
49
|
-
has: (data, name) => {
|
|
50
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
51
|
-
console.error(`Tried to check data on a sleeping reference: ${name}`);
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
return name in data;
|
|
55
|
-
},
|
|
56
|
-
get: (data, name) => {
|
|
57
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
58
|
-
console.error(`Tried to get data on a sleeping reference: ${name}`);
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
if (data.hasOwnProperty(name)) {
|
|
62
|
-
return data[name];
|
|
63
|
-
}
|
|
64
|
-
return undefined;
|
|
65
|
-
},
|
|
66
|
-
set: (data, name, value) => {
|
|
67
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
68
|
-
console.error(`Tried to set data on a sleeping reference: ${name}`);
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
if (typeof name !== 'symbol') {
|
|
72
|
-
this.$dirty[name] = true;
|
|
73
|
-
}
|
|
74
|
-
data[name] = value;
|
|
75
|
-
return true;
|
|
76
|
-
},
|
|
77
|
-
deleteProperty: (data, name) => {
|
|
78
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
79
|
-
console.error(`Tried to delete data on a sleeping reference: ${name}`);
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
if (data.hasOwnProperty(name)) {
|
|
83
|
-
this.$dirty[name] = true;
|
|
84
|
-
return delete data[name];
|
|
85
|
-
}
|
|
86
|
-
return true;
|
|
87
|
-
},
|
|
88
|
-
defineProperty: (data, name, descriptor) => {
|
|
89
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
90
|
-
console.error(`Tried to define data on a sleeping reference: ${name}`);
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
if (typeof name !== 'symbol') {
|
|
94
|
-
this.$dirty[name] = true;
|
|
95
|
-
}
|
|
96
|
-
Object.defineProperty(data, name, descriptor);
|
|
97
|
-
return true;
|
|
98
|
-
},
|
|
99
|
-
getOwnPropertyDescriptor: (data, name) => {
|
|
100
|
-
if (typeof name !== 'symbol' && this.$isASleepingReference) {
|
|
101
|
-
console.error(`Tried to get property descriptor on a sleeping reference: ${name}`);
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
|
-
return Object.getOwnPropertyDescriptor(data, name);
|
|
105
|
-
},
|
|
106
|
-
ownKeys: (data) => {
|
|
107
|
-
if (this.$isASleepingReference) {
|
|
108
|
-
console.error(`Tried to enumerate data on a sleeping reference.`);
|
|
109
|
-
return undefined;
|
|
110
|
-
}
|
|
111
|
-
return Object.getOwnPropertyNames(data);
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
this.$dataStore = {};
|
|
115
|
-
this.$data = new Proxy(this.$dataStore, this.$dataHandler);
|
|
116
|
-
return new Proxy(this, {
|
|
117
|
-
has(entity, name) {
|
|
118
|
-
if (typeof name !== 'string' ||
|
|
119
|
-
name in entity ||
|
|
120
|
-
name.substring(0, 1) === '$') {
|
|
121
|
-
return name in entity;
|
|
122
|
-
}
|
|
123
|
-
return name in entity.$data;
|
|
124
|
-
},
|
|
125
|
-
get(entity, name) {
|
|
126
|
-
if (typeof name !== 'string' ||
|
|
127
|
-
name in entity ||
|
|
128
|
-
name.substring(0, 1) === '$') {
|
|
129
|
-
return entity[name];
|
|
130
|
-
}
|
|
131
|
-
if (name in entity.$data) {
|
|
132
|
-
return entity.$data[name];
|
|
133
|
-
}
|
|
134
|
-
return undefined;
|
|
135
|
-
},
|
|
136
|
-
set(entity, name, value) {
|
|
137
|
-
if (typeof name !== 'string' ||
|
|
138
|
-
name in entity ||
|
|
139
|
-
name.substring(0, 1) === '$') {
|
|
140
|
-
entity[name] = value;
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
entity.$data[name] = value;
|
|
144
|
-
}
|
|
145
|
-
return true;
|
|
146
|
-
},
|
|
147
|
-
deleteProperty(entity, name) {
|
|
148
|
-
if (name in entity) {
|
|
149
|
-
return delete entity[name];
|
|
150
|
-
}
|
|
151
|
-
else if (name in entity.$data) {
|
|
152
|
-
return delete entity.$data[name];
|
|
153
|
-
}
|
|
154
|
-
return true;
|
|
155
|
-
},
|
|
156
|
-
getPrototypeOf(entity) {
|
|
157
|
-
return entity.constructor.prototype;
|
|
158
|
-
},
|
|
159
|
-
defineProperty(entity, name, descriptor) {
|
|
160
|
-
if (typeof name !== 'string' ||
|
|
161
|
-
name in entity ||
|
|
162
|
-
name.substring(0, 1) === '$') {
|
|
163
|
-
Object.defineProperty(entity, name, descriptor);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
Object.defineProperty(entity.$data, name, descriptor);
|
|
167
|
-
}
|
|
168
|
-
return true;
|
|
169
|
-
},
|
|
170
|
-
getOwnPropertyDescriptor(entity, name) {
|
|
171
|
-
if (typeof name !== 'string' ||
|
|
172
|
-
name in entity ||
|
|
173
|
-
name.substring(0, 1) === '$') {
|
|
174
|
-
return Object.getOwnPropertyDescriptor(entity, name);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
return Object.getOwnPropertyDescriptor(entity.$data, name);
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
ownKeys(entity) {
|
|
181
|
-
return Object.getOwnPropertyNames(entity).concat(Object.getOwnPropertyNames(entity.$data));
|
|
182
|
-
},
|
|
183
|
-
});
|
|
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
|
-
*/
|
|
192
|
-
static async factory(guid) {
|
|
193
|
-
const cacheEntity = (guid
|
|
194
|
-
? this.nymph.getEntityFromCache(this, guid)
|
|
195
|
-
: null);
|
|
196
|
-
if (cacheEntity) {
|
|
197
|
-
return cacheEntity;
|
|
198
|
-
}
|
|
199
|
-
const entity = new this();
|
|
200
|
-
if (guid != null) {
|
|
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();
|
|
209
|
-
}
|
|
210
|
-
return entity;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Create a new entity instance.
|
|
214
|
-
*/
|
|
215
|
-
static factorySync() {
|
|
216
|
-
return new this();
|
|
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
|
-
*/
|
|
227
|
-
static factoryReference(reference) {
|
|
228
|
-
const cacheEntity = (reference[1]
|
|
229
|
-
? this.nymph.getEntityFromCache(this, reference[1])
|
|
230
|
-
: null);
|
|
231
|
-
const entity = cacheEntity || new this();
|
|
232
|
-
if (!cacheEntity) {
|
|
233
|
-
entity.$referenceSleep(reference);
|
|
234
|
-
}
|
|
235
|
-
return entity;
|
|
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
|
-
*/
|
|
244
|
-
static async serverCallStatic(method, params) {
|
|
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));
|
|
249
|
-
return data.return;
|
|
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
|
-
}
|
|
264
|
-
toJSON() {
|
|
265
|
-
this.$check();
|
|
266
|
-
const obj = {
|
|
267
|
-
class: this.constructor.class,
|
|
268
|
-
guid: this.guid,
|
|
269
|
-
cdate: this.cdate,
|
|
270
|
-
mdate: this.mdate,
|
|
271
|
-
tags: [...this.tags],
|
|
272
|
-
data: {},
|
|
273
|
-
};
|
|
274
|
-
for (let [key, value] of Object.entries(this.$dataStore)) {
|
|
275
|
-
obj.data[key] = (0, utils_1.entitiesToReferences)(value);
|
|
276
|
-
}
|
|
277
|
-
return obj;
|
|
278
|
-
}
|
|
279
|
-
$init(entityJson) {
|
|
280
|
-
if (entityJson == null) {
|
|
281
|
-
return this;
|
|
282
|
-
}
|
|
283
|
-
this.$isASleepingReference = false;
|
|
284
|
-
this.$sleepingReference = null;
|
|
285
|
-
this.guid = entityJson.guid;
|
|
286
|
-
this.cdate = entityJson.cdate;
|
|
287
|
-
this.mdate = entityJson.mdate;
|
|
288
|
-
this.tags = entityJson.tags;
|
|
289
|
-
this.$originalTags = entityJson.tags.slice(0);
|
|
290
|
-
this.$dirty = {};
|
|
291
|
-
this.$dataStore = Object.entries(entityJson.data)
|
|
292
|
-
.map(([key, value]) => {
|
|
293
|
-
this.$dirty[key] = false;
|
|
294
|
-
return { key, value: (0, utils_1.referencesToEntities)(value, this.$nymph) };
|
|
295
|
-
})
|
|
296
|
-
.reduce((obj, { key, value }) => Object.assign(obj, { [key]: value }), {});
|
|
297
|
-
this.$data = new Proxy(this.$dataStore, this.$dataHandler);
|
|
298
|
-
this.$nymph.setEntityToCache(this.constructor, this);
|
|
299
|
-
return this;
|
|
300
|
-
}
|
|
301
|
-
$addTag(...tags) {
|
|
302
|
-
this.$check();
|
|
303
|
-
if (tags.length < 1) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
this.tags = (0, utils_1.uniqueStrings)([...this.tags, ...tags]);
|
|
307
|
-
}
|
|
308
|
-
$arraySearch(array, strict = false) {
|
|
309
|
-
this.$check();
|
|
310
|
-
if (!Array.isArray(array)) {
|
|
311
|
-
return -1;
|
|
312
|
-
}
|
|
313
|
-
for (let i = 0; i < array.length; i++) {
|
|
314
|
-
const curEntity = array[i];
|
|
315
|
-
if (strict ? this.$equals(curEntity) : this.$is(curEntity)) {
|
|
316
|
-
return i;
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
return -1;
|
|
320
|
-
}
|
|
321
|
-
async $delete() {
|
|
322
|
-
this.$check();
|
|
323
|
-
const guid = this.guid;
|
|
324
|
-
return (await this.$nymph.deleteEntity(this)) === guid;
|
|
325
|
-
}
|
|
326
|
-
$equals(object) {
|
|
327
|
-
this.$check();
|
|
328
|
-
if (!(object instanceof Entity)) {
|
|
329
|
-
return false;
|
|
330
|
-
}
|
|
331
|
-
if (this.guid || object.guid) {
|
|
332
|
-
if (this.guid !== object.guid) {
|
|
333
|
-
return false;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
if (object.cdate !== this.cdate) {
|
|
337
|
-
return false;
|
|
338
|
-
}
|
|
339
|
-
if (object.mdate !== this.mdate) {
|
|
340
|
-
return false;
|
|
341
|
-
}
|
|
342
|
-
const obData = (0, utils_1.sortObj)(object.toJSON());
|
|
343
|
-
obData.tags?.sort();
|
|
344
|
-
// obData.data = sortObj(obData.data);
|
|
345
|
-
const myData = (0, utils_1.sortObj)(this.toJSON());
|
|
346
|
-
myData.tags?.sort();
|
|
347
|
-
// myData.data = sortObj(myData.data);
|
|
348
|
-
return (0, lodash_1.isEqual)(obData, myData);
|
|
349
|
-
}
|
|
350
|
-
$getPatch() {
|
|
351
|
-
this.$check();
|
|
352
|
-
if (this.guid == null) {
|
|
353
|
-
throw new InvalidStateError("You can't make a patch from an unsaved entity.");
|
|
354
|
-
}
|
|
355
|
-
const patch = {
|
|
356
|
-
guid: this.guid,
|
|
357
|
-
mdate: this.mdate,
|
|
358
|
-
class: this.constructor.class,
|
|
359
|
-
addTags: this.tags.filter((tag) => this.$originalTags.indexOf(tag) === -1),
|
|
360
|
-
removeTags: this.$originalTags.filter((tag) => this.tags.indexOf(tag) === -1),
|
|
361
|
-
unset: [],
|
|
362
|
-
set: {},
|
|
363
|
-
};
|
|
364
|
-
for (let [key, dirty] of Object.entries(this.$dirty)) {
|
|
365
|
-
if (dirty) {
|
|
366
|
-
if (key in this.$data) {
|
|
367
|
-
patch.set[key] = (0, utils_1.entitiesToReferences)(this.$data[key]);
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
patch.unset.push(key);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
return patch;
|
|
375
|
-
}
|
|
376
|
-
$hasTag(...tags) {
|
|
377
|
-
this.$check();
|
|
378
|
-
if (!tags.length) {
|
|
379
|
-
return false;
|
|
380
|
-
}
|
|
381
|
-
for (let i = 0; i < tags.length; i++) {
|
|
382
|
-
if (this.tags.indexOf(tags[i]) === -1) {
|
|
383
|
-
return false;
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return true;
|
|
387
|
-
}
|
|
388
|
-
$inArray(array, strict = false) {
|
|
389
|
-
return this.$arraySearch(array, strict) !== -1;
|
|
390
|
-
}
|
|
391
|
-
$is(object) {
|
|
392
|
-
this.$check();
|
|
393
|
-
if (!(object instanceof Entity)) {
|
|
394
|
-
return false;
|
|
395
|
-
}
|
|
396
|
-
if (this.guid || object.guid) {
|
|
397
|
-
return this.guid === object.guid;
|
|
398
|
-
}
|
|
399
|
-
else if (typeof object.toJSON !== 'function') {
|
|
400
|
-
return false;
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
const obData = (0, utils_1.sortObj)(object.toJSON());
|
|
404
|
-
obData.tags?.sort();
|
|
405
|
-
// obData.data = sortObj(obData.data);
|
|
406
|
-
const myData = (0, utils_1.sortObj)(this.toJSON());
|
|
407
|
-
myData.tags?.sort();
|
|
408
|
-
// myData.data = sortObj(myData.data);
|
|
409
|
-
return (0, lodash_1.isEqual)(obData, myData);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
async $patch() {
|
|
413
|
-
this.$check();
|
|
414
|
-
const mdate = this.mdate;
|
|
415
|
-
await this.$nymph.patchEntity(this);
|
|
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
|
-
}
|
|
425
|
-
}
|
|
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() {
|
|
436
|
-
if (!this.$isASleepingReference) {
|
|
437
|
-
this.$wakePromise = null;
|
|
438
|
-
return Promise.resolve(this);
|
|
439
|
-
}
|
|
440
|
-
if (this.$sleepingReference?.[1] == null) {
|
|
441
|
-
throw new InvalidStateError('Tried to wake a sleeping reference with no GUID.');
|
|
442
|
-
}
|
|
443
|
-
if (!this.$wakePromise) {
|
|
444
|
-
this.$wakePromise = this.$nymph
|
|
445
|
-
.getEntityData({ class: this.constructor }, { type: '&', guid: this.$sleepingReference[1] })
|
|
446
|
-
.then((data) => {
|
|
447
|
-
if (data == null) {
|
|
448
|
-
const errObj = { data, textStatus: 'No data returned.' };
|
|
449
|
-
return Promise.reject(errObj);
|
|
450
|
-
}
|
|
451
|
-
return this.$init(data);
|
|
452
|
-
})
|
|
453
|
-
.finally(() => {
|
|
454
|
-
this.$wakePromise = null;
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
return this.$wakePromise;
|
|
458
|
-
}
|
|
459
|
-
$wakeAll(level) {
|
|
460
|
-
return new Promise((resolve, reject) => {
|
|
461
|
-
// Run this once this entity is awake.
|
|
462
|
-
const wakeProps = () => {
|
|
463
|
-
let newLevel;
|
|
464
|
-
// If level is undefined, keep going forever, otherwise, stop once we've
|
|
465
|
-
// gone deep enough.
|
|
466
|
-
if (level !== undefined) {
|
|
467
|
-
newLevel = level - 1;
|
|
468
|
-
}
|
|
469
|
-
if (newLevel !== undefined && newLevel < 0) {
|
|
470
|
-
resolve(this);
|
|
471
|
-
return;
|
|
472
|
-
}
|
|
473
|
-
const promises = [];
|
|
474
|
-
// Go through data looking for entities to wake.
|
|
475
|
-
for (let [key, value] of Object.entries(this.$data)) {
|
|
476
|
-
if (value instanceof Entity && value.$isASleepingReference) {
|
|
477
|
-
promises.push(value.$wakeAll(newLevel));
|
|
478
|
-
}
|
|
479
|
-
else if (Array.isArray(value)) {
|
|
480
|
-
for (let i = 0; i < value.length; i++) {
|
|
481
|
-
if (value[i] instanceof Entity &&
|
|
482
|
-
value[i].$isASleepingReference) {
|
|
483
|
-
promises.push(value[i].$wakeAll(newLevel));
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
if (promises.length) {
|
|
489
|
-
Promise.all(promises).then(() => resolve(this), (errObj) => reject(errObj));
|
|
490
|
-
}
|
|
491
|
-
else {
|
|
492
|
-
resolve(this);
|
|
493
|
-
}
|
|
494
|
-
};
|
|
495
|
-
if (this.$isASleepingReference) {
|
|
496
|
-
this.$wake().then(wakeProps, (errObj) => reject(errObj));
|
|
497
|
-
}
|
|
498
|
-
else {
|
|
499
|
-
wakeProps();
|
|
500
|
-
}
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
$referenceSleep(reference) {
|
|
504
|
-
this.$isASleepingReference = true;
|
|
505
|
-
this.guid = reference[1];
|
|
506
|
-
this.$sleepingReference = [...reference];
|
|
507
|
-
}
|
|
508
|
-
async $refresh() {
|
|
509
|
-
if (this.$isASleepingReference) {
|
|
510
|
-
await this.$wake();
|
|
511
|
-
return true;
|
|
512
|
-
}
|
|
513
|
-
if (this.guid == null) {
|
|
514
|
-
return false;
|
|
515
|
-
}
|
|
516
|
-
const data = await this.$nymph.getEntityData({
|
|
517
|
-
class: this.constructor,
|
|
518
|
-
}, {
|
|
519
|
-
type: '&',
|
|
520
|
-
guid: this.guid,
|
|
521
|
-
});
|
|
522
|
-
this.$init(data);
|
|
523
|
-
return this.guid == null ? 0 : true;
|
|
524
|
-
}
|
|
525
|
-
$removeTag(...tags) {
|
|
526
|
-
this.$check();
|
|
527
|
-
this.tags = (0, lodash_1.difference)(this.tags, tags);
|
|
528
|
-
}
|
|
529
|
-
async $save() {
|
|
530
|
-
this.$check();
|
|
531
|
-
await this.$nymph.saveEntity(this);
|
|
532
|
-
return !!this.guid;
|
|
533
|
-
}
|
|
534
|
-
async $serverCall(method, params, stateless = false) {
|
|
535
|
-
this.$check();
|
|
536
|
-
// Turn the params into a real array, in case an arguments object was
|
|
537
|
-
// passed.
|
|
538
|
-
const paramArray = Array.prototype.slice.call(params);
|
|
539
|
-
const data = await this.$nymph.serverCall(this, method, paramArray, stateless);
|
|
540
|
-
if (!stateless && data.entity) {
|
|
541
|
-
this.$init(data.entity);
|
|
542
|
-
}
|
|
543
|
-
return data.return;
|
|
544
|
-
}
|
|
545
|
-
$toReference() {
|
|
546
|
-
if (this.$isASleepingReference && this.$sleepingReference) {
|
|
547
|
-
return this.$sleepingReference;
|
|
548
|
-
}
|
|
549
|
-
if (this.guid == null) {
|
|
550
|
-
return this;
|
|
551
|
-
}
|
|
552
|
-
return [
|
|
553
|
-
'nymph_entity_reference',
|
|
554
|
-
this.guid,
|
|
555
|
-
this.constructor.class,
|
|
556
|
-
];
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
/**
|
|
560
|
-
* The instance of Nymph to use for queries.
|
|
561
|
-
*/
|
|
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
|
-
*/
|
|
569
|
-
Entity.class = 'Entity';
|
|
570
|
-
exports.default = Entity;
|
|
571
|
-
class EntityIsSleepingReferenceError extends Error {
|
|
572
|
-
constructor(message) {
|
|
573
|
-
super(message);
|
|
574
|
-
this.name = 'EntityIsSleepingReferenceError';
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
exports.EntityIsSleepingReferenceError = EntityIsSleepingReferenceError;
|
|
578
|
-
class InvalidStateError extends Error {
|
|
579
|
-
constructor(message) {
|
|
580
|
-
super(message);
|
|
581
|
-
this.name = 'InvalidStateError';
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
exports.InvalidStateError = InvalidStateError;
|
|
585
|
-
//# sourceMappingURL=Entity.js.map
|
package/lib/Entity.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|