@nymphjs/nymph 1.0.0-beta.124 → 1.0.0-beta.126
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 +12 -0
- package/dist/Entity.d.ts +1 -1
- package/dist/Entity.js +23 -23
- package/dist/Entity.js.map +1 -1
- package/dist/Entity.test.js +4 -4
- package/dist/Entity.test.js.map +1 -1
- package/dist/Entity.types.d.ts +12 -2
- package/dist/driver/NymphDriver.js +18 -7
- package/dist/driver/NymphDriver.js.map +1 -1
- package/dist/driver/testArtifacts.js +2 -1
- package/dist/driver/testArtifacts.js.map +1 -1
- package/dist/testMocks.js +4 -4
- package/dist/testMocks.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +40 -33
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/Entity.test.ts +4 -4
- package/src/Entity.ts +47 -34
- package/src/Entity.types.ts +12 -2
- package/src/driver/NymphDriver.ts +73 -7
- package/src/driver/testArtifacts.ts +7 -1
- package/src/testMocks.ts +28 -5
- package/src/utils.ts +47 -47
package/dist/testMocks.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { guid } from '@nymphjs/guid';
|
|
2
2
|
import { ClassNotAvailableError, EntityConflictError } from './errors/index.js';
|
|
3
3
|
import Entity from './Entity.js';
|
|
4
|
+
import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, referencesToEntities, } from './utils.js';
|
|
4
5
|
const entities = {};
|
|
5
6
|
export class MockNymphDriver {
|
|
6
7
|
nymph;
|
|
@@ -18,7 +19,7 @@ export class MockNymphDriver {
|
|
|
18
19
|
entity.cdate = entityJson.cdate;
|
|
19
20
|
entity.mdate = entityJson.mdate;
|
|
20
21
|
entity.tags = entityJson.tags;
|
|
21
|
-
entity.$putData(entityJson.data, {}, 'server');
|
|
22
|
+
entity.$putData(classNamesToEntityConstructors(this.nymph, referencesToEntities(entityJson.data, this.nymph, !!options.skipAc, false), false), {}, 'server');
|
|
22
23
|
return entity;
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -68,7 +69,6 @@ export class MockNymph {
|
|
|
68
69
|
return await this.driver.getEntity(options, ...selectors);
|
|
69
70
|
}
|
|
70
71
|
async saveEntity(entity) {
|
|
71
|
-
const className = entity.constructor.class;
|
|
72
72
|
if (entity.guid == null) {
|
|
73
73
|
entity.guid = guid();
|
|
74
74
|
entity.cdate = Date.now();
|
|
@@ -79,12 +79,12 @@ export class MockNymph {
|
|
|
79
79
|
}
|
|
80
80
|
entity.mdate = Date.now();
|
|
81
81
|
const entityJson = {
|
|
82
|
-
class:
|
|
82
|
+
class: entity.constructor,
|
|
83
83
|
guid: entity.guid,
|
|
84
84
|
cdate: entity.cdate,
|
|
85
85
|
mdate: entity.mdate,
|
|
86
86
|
tags: [...entity.tags],
|
|
87
|
-
data: JSON.parse(JSON.stringify(entity.$getData(true))),
|
|
87
|
+
data: JSON.parse(JSON.stringify(entityConstructorsToClassNames(entitiesToReferences(entity.$getData(true), true)))),
|
|
88
88
|
};
|
|
89
89
|
entities[entity.guid] = entityJson;
|
|
90
90
|
return true;
|
package/dist/testMocks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUrC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Nymph from './Nymph.js';
|
|
2
2
|
export declare function xor(a: any, b: any): boolean;
|
|
3
3
|
export declare function uniqueStrings(array: string[]): string[];
|
|
4
|
-
export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
|
|
5
4
|
export declare function entityConstructorsToClassNames(item: any): any;
|
|
5
|
+
export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
|
|
6
6
|
export declare function entitiesToReferences(item: any, existingOnly?: boolean): any;
|
|
7
7
|
export declare function referencesToEntities(item: any, nymph: Nymph, useSkipAc?: boolean, enforceRestEnabledFlag?: boolean): any;
|
|
8
8
|
export declare function sortObj<T extends {
|
package/dist/utils.js
CHANGED
|
@@ -9,63 +9,63 @@ export function uniqueStrings(array) {
|
|
|
9
9
|
}
|
|
10
10
|
return Object.keys(obj);
|
|
11
11
|
}
|
|
12
|
-
export function
|
|
12
|
+
export function entityConstructorsToClassNames(item) {
|
|
13
13
|
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
14
14
|
return item;
|
|
15
15
|
}
|
|
16
|
-
else if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
typeof item[1] === 'string') {
|
|
20
|
-
// Convert class references to entity classes.
|
|
21
|
-
const EntityClass = nymph.getEntityClass(item[1]);
|
|
22
|
-
if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
|
|
23
|
-
throw new Error('Not accessible.');
|
|
24
|
-
}
|
|
25
|
-
return EntityClass;
|
|
16
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
17
|
+
// Convert entity classes to class references.
|
|
18
|
+
return ['nymph_class_reference', item.class];
|
|
26
19
|
}
|
|
27
|
-
else if (item instanceof Entity
|
|
28
|
-
typeof item.$toReference === 'function') {
|
|
20
|
+
else if (item instanceof Entity) {
|
|
29
21
|
// Don't touch entities.
|
|
30
22
|
return item;
|
|
31
23
|
}
|
|
32
24
|
else if (Array.isArray(item)) {
|
|
33
25
|
// Recurse into lower arrays.
|
|
34
|
-
return item.map((entry) =>
|
|
26
|
+
return item.map((entry) => entityConstructorsToClassNames(entry));
|
|
35
27
|
}
|
|
36
28
|
else if (item instanceof Object) {
|
|
37
29
|
let newObj = Object.create(item);
|
|
38
30
|
for (let [key, value] of Object.entries(item)) {
|
|
39
|
-
newObj[key] =
|
|
31
|
+
newObj[key] = entityConstructorsToClassNames(value);
|
|
40
32
|
}
|
|
41
33
|
return newObj;
|
|
42
34
|
}
|
|
43
35
|
// Not an entity or array, just return it.
|
|
44
36
|
return item;
|
|
45
37
|
}
|
|
46
|
-
export function
|
|
38
|
+
export function classNamesToEntityConstructors(nymph, item, enforceRestEnabledFlag = false) {
|
|
47
39
|
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
48
40
|
return item;
|
|
49
41
|
}
|
|
50
|
-
else if (
|
|
51
|
-
item.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
else if (Array.isArray(item) &&
|
|
43
|
+
item.length === 2 &&
|
|
44
|
+
item[0] === 'nymph_class_reference' &&
|
|
45
|
+
typeof item[1] === 'string') {
|
|
46
|
+
// Convert class references to entity classes.
|
|
47
|
+
const EntityClass = nymph.getEntityClass(item[1]);
|
|
48
|
+
if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
|
|
49
|
+
throw new Error('Not accessible.');
|
|
50
|
+
}
|
|
51
|
+
return EntityClass;
|
|
55
52
|
}
|
|
56
|
-
else if (item instanceof Entity
|
|
57
|
-
typeof item.$toReference === 'function') {
|
|
53
|
+
else if (item instanceof Entity) {
|
|
58
54
|
// Don't touch entities.
|
|
59
55
|
return item;
|
|
60
56
|
}
|
|
57
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
58
|
+
// Don't touch Entity classes.
|
|
59
|
+
return item;
|
|
60
|
+
}
|
|
61
61
|
else if (Array.isArray(item)) {
|
|
62
62
|
// Recurse into lower arrays.
|
|
63
|
-
return item.map((entry) =>
|
|
63
|
+
return item.map((entry) => classNamesToEntityConstructors(nymph, entry, enforceRestEnabledFlag));
|
|
64
64
|
}
|
|
65
65
|
else if (item instanceof Object) {
|
|
66
66
|
let newObj = Object.create(item);
|
|
67
67
|
for (let [key, value] of Object.entries(item)) {
|
|
68
|
-
newObj[key] =
|
|
68
|
+
newObj[key] = classNamesToEntityConstructors(nymph, value, enforceRestEnabledFlag);
|
|
69
69
|
}
|
|
70
70
|
return newObj;
|
|
71
71
|
}
|
|
@@ -76,14 +76,11 @@ export function entitiesToReferences(item, existingOnly) {
|
|
|
76
76
|
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
77
77
|
return item;
|
|
78
78
|
}
|
|
79
|
-
else if (item instanceof Entity
|
|
80
|
-
typeof item.$toReference === 'function') {
|
|
79
|
+
else if (item instanceof Entity) {
|
|
81
80
|
// Convert entities to references.
|
|
82
81
|
return item.$toReference(existingOnly);
|
|
83
82
|
}
|
|
84
|
-
else if (typeof item === 'function' &&
|
|
85
|
-
item.prototype instanceof Entity &&
|
|
86
|
-
typeof item.class === 'string') {
|
|
83
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
87
84
|
// Don't touch Entity classes.
|
|
88
85
|
return item;
|
|
89
86
|
}
|
|
@@ -124,13 +121,23 @@ export function referencesToEntities(item, nymph, useSkipAc = false, enforceRest
|
|
|
124
121
|
}
|
|
125
122
|
else {
|
|
126
123
|
// Recurse into lower arrays.
|
|
127
|
-
return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc));
|
|
124
|
+
return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc, enforceRestEnabledFlag));
|
|
128
125
|
}
|
|
129
126
|
}
|
|
130
|
-
else if (
|
|
127
|
+
else if (item instanceof Entity) {
|
|
128
|
+
// Don't touch entities.
|
|
129
|
+
return item;
|
|
130
|
+
}
|
|
131
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
132
|
+
// Don't touch Entity classes.
|
|
133
|
+
return item;
|
|
134
|
+
}
|
|
135
|
+
else if (item instanceof Object) {
|
|
136
|
+
let newObj = Object.create(item);
|
|
131
137
|
for (let [key, value] of Object.entries(item)) {
|
|
132
|
-
|
|
138
|
+
newObj[key] = referencesToEntities(value, nymph, useSkipAc, enforceRestEnabledFlag);
|
|
133
139
|
}
|
|
140
|
+
return newObj;
|
|
134
141
|
}
|
|
135
142
|
// Not an array, just return it.
|
|
136
143
|
return item;
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/nymph",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.126",
|
|
4
4
|
"description": "Application Data and Access Framework for Node.js and the Browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"license": "Apache-2.0",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
46
|
+
"@nymphjs/guid": "^1.0.0-beta.126",
|
|
47
47
|
"@sciactive/tokenizer": "^3.4.0",
|
|
48
48
|
"debug": "^4.4.3",
|
|
49
49
|
"joi": "^18.2.5",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"ts-node": "^10.9.2",
|
|
67
67
|
"typescript": "^7.0.2"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "92761dea0e829bd33b0e4eaadb86802bb9fd0d40"
|
|
70
70
|
}
|
package/src/Entity.test.ts
CHANGED
|
@@ -273,7 +273,7 @@ describe('Entity', () => {
|
|
|
273
273
|
null: null,
|
|
274
274
|
uniques: [],
|
|
275
275
|
},
|
|
276
|
-
class: 'TestModel',
|
|
276
|
+
class: ['nymph_class_reference', 'TestModel'],
|
|
277
277
|
});
|
|
278
278
|
});
|
|
279
279
|
|
|
@@ -333,7 +333,7 @@ describe('Entity', () => {
|
|
|
333
333
|
testEntity.cdate = 13;
|
|
334
334
|
testEntity.mdate = 14;
|
|
335
335
|
testEntity.$jsonAcceptPatch({
|
|
336
|
-
class: TestModel
|
|
336
|
+
class: TestModel,
|
|
337
337
|
guid: testEntity.guid as string,
|
|
338
338
|
mdate: 15,
|
|
339
339
|
set: {
|
|
@@ -379,7 +379,7 @@ describe('Entity', () => {
|
|
|
379
379
|
testEntity.cdate = 13;
|
|
380
380
|
testEntity.mdate = 14;
|
|
381
381
|
testEntity.$jsonAcceptPatch({
|
|
382
|
-
class: TestModel
|
|
382
|
+
class: TestModel,
|
|
383
383
|
guid: testEntity.guid as string,
|
|
384
384
|
mdate: 15,
|
|
385
385
|
set: {
|
|
@@ -424,7 +424,7 @@ describe('Entity', () => {
|
|
|
424
424
|
|
|
425
425
|
try {
|
|
426
426
|
testEntity.$jsonAcceptPatch({
|
|
427
|
-
class: TestModel
|
|
427
|
+
class: TestModel,
|
|
428
428
|
guid: data.guid,
|
|
429
429
|
mdate: data.mdate,
|
|
430
430
|
set: {
|
package/src/Entity.ts
CHANGED
|
@@ -22,7 +22,9 @@ import {
|
|
|
22
22
|
MethodFailedError,
|
|
23
23
|
} from './errors/index.js';
|
|
24
24
|
import {
|
|
25
|
+
classNamesToEntityConstructors,
|
|
25
26
|
entitiesToReferences,
|
|
27
|
+
entityConstructorsToClassNames,
|
|
26
28
|
referencesToEntities,
|
|
27
29
|
uniqueStrings,
|
|
28
30
|
} from './utils.js';
|
|
@@ -272,7 +274,11 @@ export default class Entity<
|
|
|
272
274
|
|
|
273
275
|
if (this.$sdata.hasOwnProperty(name)) {
|
|
274
276
|
data[name] = referencesToEntities(
|
|
275
|
-
|
|
277
|
+
classNamesToEntityConstructors(
|
|
278
|
+
this.$nymph,
|
|
279
|
+
JSON.parse(this.$sdata[name]),
|
|
280
|
+
false,
|
|
281
|
+
),
|
|
276
282
|
this.$nymph,
|
|
277
283
|
this.$skipAc,
|
|
278
284
|
);
|
|
@@ -325,7 +331,11 @@ export default class Entity<
|
|
|
325
331
|
|
|
326
332
|
if (this.$sdata.hasOwnProperty(name)) {
|
|
327
333
|
data[name] = referencesToEntities(
|
|
328
|
-
|
|
334
|
+
classNamesToEntityConstructors(
|
|
335
|
+
this.$nymph,
|
|
336
|
+
JSON.parse(this.$sdata[name]),
|
|
337
|
+
false,
|
|
338
|
+
),
|
|
329
339
|
this.$nymph,
|
|
330
340
|
this.$skipAc,
|
|
331
341
|
);
|
|
@@ -587,7 +597,7 @@ export default class Entity<
|
|
|
587
597
|
return this.$sleepingReference;
|
|
588
598
|
}
|
|
589
599
|
const obj: EntityJson = {
|
|
590
|
-
class: (this.constructor
|
|
600
|
+
class: entityConstructorsToClassNames(this.constructor),
|
|
591
601
|
guid: this.guid,
|
|
592
602
|
cdate: this.cdate,
|
|
593
603
|
mdate: this.mdate,
|
|
@@ -599,7 +609,9 @@ export default class Entity<
|
|
|
599
609
|
...Object.keys(this.$sdata),
|
|
600
610
|
]) {
|
|
601
611
|
if (this.$privateData.indexOf(key) === -1) {
|
|
602
|
-
obj.data[key] =
|
|
612
|
+
obj.data[key] = entityConstructorsToClassNames(
|
|
613
|
+
entitiesToReferences(this.$data[key], true),
|
|
614
|
+
);
|
|
603
615
|
}
|
|
604
616
|
}
|
|
605
617
|
return obj;
|
|
@@ -617,6 +629,11 @@ export default class Entity<
|
|
|
617
629
|
if (data.$nymph !== nymph) {
|
|
618
630
|
data.$setNymph(nymph);
|
|
619
631
|
}
|
|
632
|
+
} else if (
|
|
633
|
+
typeof data === 'function' &&
|
|
634
|
+
data.prototype instanceof Entity
|
|
635
|
+
) {
|
|
636
|
+
data.nymph = nymph;
|
|
620
637
|
} else if (typeof data === 'object') {
|
|
621
638
|
for (let name in data) {
|
|
622
639
|
recurseData(data[name]);
|
|
@@ -664,7 +681,7 @@ export default class Entity<
|
|
|
664
681
|
public $clearCache() {
|
|
665
682
|
this.$check();
|
|
666
683
|
|
|
667
|
-
this.$putData(this.$getData(false
|
|
684
|
+
this.$putData(this.$getData(false), this.$getSData());
|
|
668
685
|
}
|
|
669
686
|
|
|
670
687
|
public $getClientEnabledMethods() {
|
|
@@ -701,12 +718,16 @@ export default class Entity<
|
|
|
701
718
|
if (!isEqual(obTags, myTags)) {
|
|
702
719
|
return false;
|
|
703
720
|
}
|
|
704
|
-
const obData =
|
|
705
|
-
|
|
721
|
+
const obData = entityConstructorsToClassNames(
|
|
722
|
+
entitiesToReferences(object.$getData(true), true),
|
|
723
|
+
);
|
|
724
|
+
const myData = entityConstructorsToClassNames(
|
|
725
|
+
entitiesToReferences(this.$getData(true), true),
|
|
726
|
+
);
|
|
706
727
|
return isEqual(obData, myData);
|
|
707
728
|
}
|
|
708
729
|
|
|
709
|
-
public $getData(includeSData = false
|
|
730
|
+
public $getData(includeSData = false) {
|
|
710
731
|
this.$check();
|
|
711
732
|
|
|
712
733
|
if (includeSData) {
|
|
@@ -715,7 +736,7 @@ export default class Entity<
|
|
|
715
736
|
const _unused: any = (this as any)[key];
|
|
716
737
|
}
|
|
717
738
|
}
|
|
718
|
-
return
|
|
739
|
+
return { ...this.$dataStore };
|
|
719
740
|
}
|
|
720
741
|
|
|
721
742
|
public $getSData() {
|
|
@@ -801,7 +822,11 @@ export default class Entity<
|
|
|
801
822
|
cdate: this.cdate,
|
|
802
823
|
mdate: this.mdate,
|
|
803
824
|
tags: this.tags,
|
|
804
|
-
...referencesToEntities(
|
|
825
|
+
...referencesToEntities(
|
|
826
|
+
classNamesToEntityConstructors(this.$nymph, this.$dataStore, false),
|
|
827
|
+
this.$nymph,
|
|
828
|
+
this.$skipAc,
|
|
829
|
+
),
|
|
805
830
|
};
|
|
806
831
|
}
|
|
807
832
|
|
|
@@ -851,8 +876,12 @@ export default class Entity<
|
|
|
851
876
|
if (!isEqual(obTags, myTags)) {
|
|
852
877
|
return false;
|
|
853
878
|
}
|
|
854
|
-
const obData =
|
|
855
|
-
|
|
879
|
+
const obData = entityConstructorsToClassNames(
|
|
880
|
+
entitiesToReferences(object.$getData(true), true),
|
|
881
|
+
);
|
|
882
|
+
const myData = entityConstructorsToClassNames(
|
|
883
|
+
entitiesToReferences(this.$getData(true), true),
|
|
884
|
+
);
|
|
856
885
|
return isEqual(obData, myData);
|
|
857
886
|
}
|
|
858
887
|
}
|
|
@@ -933,7 +962,7 @@ export default class Entity<
|
|
|
933
962
|
|
|
934
963
|
let nonAllowlistData: EntityData = {};
|
|
935
964
|
if (this.$allowlistData != null) {
|
|
936
|
-
nonAllowlistData = { ...this.$getData(true
|
|
965
|
+
nonAllowlistData = { ...this.$getData(true) };
|
|
937
966
|
for (const name of this.$allowlistData) {
|
|
938
967
|
delete nonAllowlistData[name];
|
|
939
968
|
}
|
|
@@ -1002,11 +1031,7 @@ export default class Entity<
|
|
|
1002
1031
|
) {
|
|
1003
1032
|
continue;
|
|
1004
1033
|
}
|
|
1005
|
-
(this.$data as any)[name] =
|
|
1006
|
-
patch.set[name],
|
|
1007
|
-
this.$nymph,
|
|
1008
|
-
this.$skipAc,
|
|
1009
|
-
);
|
|
1034
|
+
(this.$data as any)[name] = patch.set[name];
|
|
1010
1035
|
}
|
|
1011
1036
|
|
|
1012
1037
|
for (const name of patch.unset) {
|
|
@@ -1051,21 +1076,13 @@ export default class Entity<
|
|
|
1051
1076
|
) {
|
|
1052
1077
|
this.$check();
|
|
1053
1078
|
|
|
1054
|
-
const mySdata = sdata ?? this.$getSData();
|
|
1055
|
-
for (const name in data) {
|
|
1056
|
-
delete mySdata[name];
|
|
1057
|
-
}
|
|
1058
1079
|
for (const name in this.$dataStore) {
|
|
1059
1080
|
delete this.$dataStore[name];
|
|
1060
1081
|
}
|
|
1061
1082
|
for (const name in data) {
|
|
1062
|
-
(this.$dataStore as any)[name] =
|
|
1063
|
-
data[name],
|
|
1064
|
-
this.$nymph,
|
|
1065
|
-
this.$skipAc,
|
|
1066
|
-
);
|
|
1083
|
+
(this.$dataStore as any)[name] = data[name];
|
|
1067
1084
|
}
|
|
1068
|
-
this.$sdata =
|
|
1085
|
+
this.$sdata = sdata ?? {};
|
|
1069
1086
|
// Set original AC values if not set..
|
|
1070
1087
|
if (this.$originalAcValues == null) {
|
|
1071
1088
|
this.$originalAcValues = this.$getCurrentAcValues();
|
|
@@ -1157,11 +1174,7 @@ export default class Entity<
|
|
|
1157
1174
|
this.tags = entity.tags;
|
|
1158
1175
|
this.cdate = entity.cdate;
|
|
1159
1176
|
this.mdate = entity.mdate;
|
|
1160
|
-
this.$putData(
|
|
1161
|
-
entity.$getData(false, true),
|
|
1162
|
-
entity.$getSData(),
|
|
1163
|
-
'server',
|
|
1164
|
-
);
|
|
1177
|
+
this.$putData(entity.$getData(false), entity.$getSData(), 'server');
|
|
1165
1178
|
|
|
1166
1179
|
return this;
|
|
1167
1180
|
})
|
|
@@ -1240,7 +1253,7 @@ export default class Entity<
|
|
|
1240
1253
|
this.tags = refresh.tags;
|
|
1241
1254
|
this.cdate = refresh.cdate;
|
|
1242
1255
|
this.mdate = refresh.mdate;
|
|
1243
|
-
this.$putData(refresh.$getData(false
|
|
1256
|
+
this.$putData(refresh.$getData(false), refresh.$getSData(), 'server');
|
|
1244
1257
|
return true;
|
|
1245
1258
|
}
|
|
1246
1259
|
|
package/src/Entity.types.ts
CHANGED
|
@@ -13,6 +13,7 @@ export type ACProperties = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export type EntityReference = ['nymph_entity_reference', string, string];
|
|
16
|
+
export type ClassReference = ['nymph_class_reference', string];
|
|
16
17
|
|
|
17
18
|
export type EntityData = {
|
|
18
19
|
[k: string]: any;
|
|
@@ -31,7 +32,7 @@ export type EntityObject = {
|
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
export type EntityJson = {
|
|
34
|
-
class:
|
|
35
|
+
class: EntityConstructor;
|
|
35
36
|
guid: string | null;
|
|
36
37
|
cdate: number | null;
|
|
37
38
|
mdate: number | null;
|
|
@@ -40,7 +41,7 @@ export type EntityJson = {
|
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
export type EntityPatch = {
|
|
43
|
-
class:
|
|
44
|
+
class: EntityConstructor;
|
|
44
45
|
guid: string;
|
|
45
46
|
mdate: number | null;
|
|
46
47
|
set: EntityData;
|
|
@@ -249,6 +250,9 @@ export interface EntityInterface extends DataObjectInterface {
|
|
|
249
250
|
/**
|
|
250
251
|
* Accept JSON data from the client.
|
|
251
252
|
*
|
|
253
|
+
* The given data must already be dereferenced (class references turned into
|
|
254
|
+
* classes and entity references turned into entities).
|
|
255
|
+
*
|
|
252
256
|
* This function uses the security protection lists:
|
|
253
257
|
*
|
|
254
258
|
* - $protectedTags
|
|
@@ -265,6 +269,9 @@ export interface EntityInterface extends DataObjectInterface {
|
|
|
265
269
|
/**
|
|
266
270
|
* Accept JSON patch from the client.
|
|
267
271
|
*
|
|
272
|
+
* The given data must already be dereferenced (class references turned into
|
|
273
|
+
* classes and entity references turned into entities).
|
|
274
|
+
*
|
|
268
275
|
* This function uses the security protection lists:
|
|
269
276
|
*
|
|
270
277
|
* - $protectedTags
|
|
@@ -284,6 +291,9 @@ export interface EntityInterface extends DataObjectInterface {
|
|
|
284
291
|
* This should only be used by Nymph to push the data from storage or the
|
|
285
292
|
* client.
|
|
286
293
|
*
|
|
294
|
+
* The given data must already be dereferenced (class references turned into
|
|
295
|
+
* classes and entity references turned into entities).
|
|
296
|
+
*
|
|
287
297
|
* `sdata` is used by Nymph to avoid unserializing data that hasn't been
|
|
288
298
|
* requested yet.
|
|
289
299
|
*
|