@nymphjs/nymph 1.0.0-beta.13 → 1.0.0-beta.130
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 +644 -0
- package/README.md +34 -24
- package/dist/Entity.d.ts +304 -15
- package/dist/Entity.js +609 -154
- package/dist/Entity.js.map +1 -1
- package/dist/Entity.test.js +75 -29
- package/dist/Entity.test.js.map +1 -1
- package/dist/Entity.types.d.ts +275 -28
- package/dist/Entity.types.js +1 -2
- package/dist/Nymph.d.ts +575 -11
- package/dist/Nymph.js +825 -288
- package/dist/Nymph.js.map +1 -1
- package/dist/Nymph.types.d.ts +117 -7
- package/dist/Nymph.types.js +47 -5
- package/dist/Nymph.types.js.map +1 -1
- package/dist/conf/defaults.d.ts +1 -1
- package/dist/conf/defaults.js +26 -3
- package/dist/conf/defaults.js.map +1 -1
- package/dist/conf/index.d.ts +50 -2
- package/dist/conf/index.js +2 -8
- package/dist/conf/index.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -0
- package/dist/decorators/index.js +2 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/transactional.d.ts +12 -0
- package/dist/decorators/transactional.js +45 -0
- package/dist/decorators/transactional.js.map +1 -0
- package/dist/driver/NymphDriver.d.ts +209 -41
- package/dist/driver/NymphDriver.js +737 -242
- package/dist/driver/NymphDriver.js.map +1 -1
- package/dist/driver/index.d.ts +1 -2
- package/dist/driver/index.js +2 -23
- package/dist/driver/index.js.map +1 -1
- package/dist/driver/testArtifacts.d.ts +4 -4
- package/dist/driver/testArtifacts.js +2016 -1086
- package/dist/driver/testArtifacts.js.map +1 -1
- package/dist/errors/ClassNotAvailableError.js +1 -5
- package/dist/errors/ClassNotAvailableError.js.map +1 -1
- package/dist/errors/EntityConflictError.js +1 -5
- package/dist/errors/EntityConflictError.js.map +1 -1
- package/dist/errors/EntityInvalidDataError.d.ts +6 -0
- package/dist/errors/EntityInvalidDataError.js +8 -6
- package/dist/errors/EntityInvalidDataError.js.map +1 -1
- package/dist/errors/EntityIsSleepingReferenceError.js +1 -5
- package/dist/errors/EntityIsSleepingReferenceError.js.map +1 -1
- package/dist/errors/EntityUniqueConstraintError.d.ts +3 -0
- package/dist/errors/EntityUniqueConstraintError.js +7 -0
- package/dist/errors/EntityUniqueConstraintError.js.map +1 -0
- package/dist/errors/HttpError.d.ts +5 -0
- package/dist/errors/HttpError.js +11 -0
- package/dist/errors/HttpError.js.map +1 -0
- package/dist/errors/InvalidParametersError.js +1 -5
- package/dist/errors/InvalidParametersError.js.map +1 -1
- package/dist/errors/InvalidStateError.d.ts +3 -0
- package/dist/errors/InvalidStateError.js +7 -0
- package/dist/errors/InvalidStateError.js.map +1 -0
- package/dist/errors/MethodFailedError.d.ts +3 -0
- package/dist/errors/MethodFailedError.js +7 -0
- package/dist/errors/MethodFailedError.js.map +1 -0
- package/dist/errors/NotConfiguredError.js +1 -5
- package/dist/errors/NotConfiguredError.js.map +1 -1
- package/dist/errors/QueryFailedError.d.ts +2 -1
- package/dist/errors/QueryFailedError.js +5 -6
- package/dist/errors/QueryFailedError.js.map +1 -1
- package/dist/errors/UnableToConnectError.js +1 -5
- package/dist/errors/UnableToConnectError.js.map +1 -1
- package/dist/errors/index.d.ts +12 -8
- package/dist/errors/index.js +12 -24
- package/dist/errors/index.js.map +1 -1
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +2 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/transaction.d.ts +15 -0
- package/dist/helpers/transaction.js +47 -0
- package/dist/helpers/transaction.js.map +1 -0
- package/dist/index.d.ts +13 -11
- package/dist/index.js +16 -34
- package/dist/index.js.map +1 -1
- package/dist/nymphJoiProps.d.ts +1 -1
- package/dist/nymphJoiProps.js +10 -15
- package/dist/nymphJoiProps.js.map +1 -1
- package/dist/testArtifacts.d.ts +21 -6
- package/dist/testArtifacts.js +124 -50
- package/dist/testArtifacts.js.map +1 -1
- package/dist/testMocks.d.ts +27 -12
- package/dist/testMocks.js +44 -33
- package/dist/testMocks.js.map +1 -1
- package/dist/utils.d.ts +5 -5
- package/dist/utils.js +106 -68
- package/dist/utils.js.map +1 -1
- package/jest.config.js +31 -5
- package/package.json +43 -24
- package/src/Entity.test.ts +73 -23
- package/src/Entity.ts +555 -169
- package/src/Entity.types.ts +102 -90
- package/src/Nymph.ts +930 -517
- package/src/Nymph.types.ts +145 -39
- package/src/conf/defaults.ts +34 -1
- package/src/conf/index.ts +50 -2
- package/src/decorators/index.ts +1 -0
- package/src/decorators/transactional.ts +63 -0
- package/src/driver/NymphDriver.ts +987 -417
- package/src/driver/index.ts +1 -3
- package/src/driver/testArtifacts.ts +2699 -1628
- package/src/errors/EntityUniqueConstraintError.ts +6 -0
- package/src/errors/HttpError.ts +12 -0
- package/src/errors/InvalidStateError.ts +6 -0
- package/src/errors/MethodFailedError.ts +6 -0
- package/src/errors/QueryFailedError.ts +3 -1
- package/src/errors/index.ts +16 -8
- package/src/helpers/index.ts +1 -0
- package/src/helpers/transaction.ts +65 -0
- package/src/index.ts +13 -11
- package/src/nymphJoiProps.ts +2 -2
- package/src/testArtifacts.ts +69 -20
- package/src/testMocks.ts +107 -41
- package/src/utils.ts +102 -67
- package/tsconfig.json +6 -3
- package/typedoc.json +4 -0
- package/dist/conf/d.d.ts +0 -6
- package/dist/conf/d.js +0 -3
- package/dist/conf/d.js.map +0 -1
- package/src/conf/d.ts +0 -24
package/dist/testMocks.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MockNymph = exports.MockNymphDriver = void 0;
|
|
7
|
-
const guid_1 = require("@nymphjs/guid");
|
|
8
|
-
const errors_1 = require("./errors");
|
|
9
|
-
const Entity_1 = __importDefault(require("./Entity"));
|
|
1
|
+
import { guid } from '@nymphjs/guid';
|
|
2
|
+
import { ClassNotAvailableError, EntityConflictError } from './errors/index.js';
|
|
3
|
+
import Entity from './Entity.js';
|
|
4
|
+
import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, referencesToEntities, } from './utils.js';
|
|
10
5
|
const entities = {};
|
|
11
|
-
class MockNymphDriver {
|
|
6
|
+
export class MockNymphDriver {
|
|
7
|
+
nymph;
|
|
12
8
|
constructor(nymph) {
|
|
13
9
|
this.nymph = nymph;
|
|
14
10
|
}
|
|
15
|
-
|
|
11
|
+
async getEntity(options = {}, ...selectors) {
|
|
16
12
|
const guid = typeof selectors[0] === 'string' ? selectors[0] : selectors[0].guid;
|
|
17
13
|
if (!options || !guid || typeof guid !== 'string' || !(guid in entities)) {
|
|
18
14
|
return null;
|
|
@@ -23,56 +19,72 @@ class MockNymphDriver {
|
|
|
23
19
|
entity.cdate = entityJson.cdate;
|
|
24
20
|
entity.mdate = entityJson.mdate;
|
|
25
21
|
entity.tags = entityJson.tags;
|
|
26
|
-
entity.$putData(entityJson.data, {});
|
|
22
|
+
entity.$putData(classNamesToEntityConstructors(this.nymph, referencesToEntities(entityJson.data, this.nymph, !!options.skipAc, false), false), {}, 'server');
|
|
27
23
|
return entity;
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
export class MockNymph {
|
|
27
|
+
entityClasses = {};
|
|
28
|
+
driver;
|
|
29
|
+
Tilmeld = undefined;
|
|
30
|
+
Entity;
|
|
32
31
|
constructor() {
|
|
33
|
-
this.entityClasses = {};
|
|
34
|
-
this.Tilmeld = undefined;
|
|
35
32
|
this.driver = new MockNymphDriver(this);
|
|
36
|
-
|
|
33
|
+
// class NymphEntity extends Entity {}
|
|
34
|
+
this.Entity = this.addEntityClass(Entity);
|
|
37
35
|
}
|
|
38
|
-
addEntityClass(
|
|
36
|
+
addEntityClass(EntityClass) {
|
|
39
37
|
const nymph = this;
|
|
40
|
-
class
|
|
38
|
+
this.entityClasses[EntityClass.class] = class extends EntityClass {
|
|
39
|
+
static nymph = nymph;
|
|
41
40
|
constructor(...args) {
|
|
42
41
|
super(...args);
|
|
43
42
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
this.entityClasses[entityClass.class] = NymphEntity;
|
|
47
|
-
return NymphEntity;
|
|
43
|
+
};
|
|
44
|
+
return this.entityClasses[EntityClass.class];
|
|
48
45
|
}
|
|
49
46
|
getEntityClass(className) {
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
let key = null;
|
|
48
|
+
if (typeof className === 'string') {
|
|
49
|
+
key = className;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
key = className.class;
|
|
53
|
+
}
|
|
54
|
+
if (key in this.entityClasses) {
|
|
55
|
+
return this.entityClasses[key];
|
|
56
|
+
}
|
|
57
|
+
throw new ClassNotAvailableError(`Tried to use missing class "${key}".`);
|
|
58
|
+
}
|
|
59
|
+
getEntityClassByEtype(etype) {
|
|
60
|
+
for (const EntityClass of Object.values(this.entityClasses)) {
|
|
61
|
+
if (EntityClass.ETYPE === etype) {
|
|
62
|
+
return EntityClass;
|
|
63
|
+
}
|
|
52
64
|
}
|
|
53
|
-
throw new
|
|
65
|
+
throw new ClassNotAvailableError(`Tried to use missing class by etype "${etype}".`);
|
|
54
66
|
}
|
|
55
67
|
async getEntity(options = {}, ...selectors) {
|
|
56
|
-
|
|
68
|
+
// @ts-ignore: The selector type is correct here.
|
|
69
|
+
return await this.driver.getEntity(options, ...selectors);
|
|
57
70
|
}
|
|
58
71
|
async saveEntity(entity) {
|
|
59
|
-
const className = entity.constructor.class;
|
|
60
72
|
if (entity.guid == null) {
|
|
61
|
-
entity.guid =
|
|
73
|
+
entity.guid = guid();
|
|
62
74
|
entity.cdate = Date.now();
|
|
63
75
|
}
|
|
64
76
|
else if (entity.guid in entities &&
|
|
65
77
|
(entity.mdate ?? 0) < (entities[entity.guid].mdate ?? 0)) {
|
|
66
|
-
|
|
78
|
+
throw new EntityConflictError("Entity either doesn't exist or is newer in the DB.");
|
|
67
79
|
}
|
|
68
80
|
entity.mdate = Date.now();
|
|
69
81
|
const entityJson = {
|
|
70
|
-
class:
|
|
82
|
+
class: entity.constructor,
|
|
71
83
|
guid: entity.guid,
|
|
72
84
|
cdate: entity.cdate,
|
|
73
85
|
mdate: entity.mdate,
|
|
74
86
|
tags: [...entity.tags],
|
|
75
|
-
data: JSON.parse(JSON.stringify(entity.$getData(true))),
|
|
87
|
+
data: JSON.parse(JSON.stringify(entityConstructorsToClassNames(entitiesToReferences(entity.$getData(true), true)))),
|
|
76
88
|
};
|
|
77
89
|
entities[entity.guid] = entityJson;
|
|
78
90
|
return true;
|
|
@@ -85,5 +97,4 @@ class MockNymph {
|
|
|
85
97
|
return false;
|
|
86
98
|
}
|
|
87
99
|
}
|
|
88
|
-
exports.MockNymph = MockNymph;
|
|
89
100
|
//# sourceMappingURL=testMocks.js.map
|
package/dist/testMocks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import Nymph from './Nymph';
|
|
2
|
-
import { Selector } from './Nymph.types';
|
|
1
|
+
import Nymph from './Nymph.js';
|
|
3
2
|
export declare function xor(a: any, b: any): boolean;
|
|
4
3
|
export declare function uniqueStrings(array: string[]): string[];
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
4
|
+
export declare function entityConstructorsToClassNames(item: any): any;
|
|
5
|
+
export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
|
|
6
|
+
export declare function entitiesToReferences(item: any, existingOnly?: boolean): any;
|
|
7
|
+
export declare function referencesToEntities(item: any, nymph: Nymph, useSkipAc?: boolean, enforceRestEnabledFlag?: boolean): any;
|
|
8
8
|
export declare function sortObj<T extends {
|
|
9
9
|
[k: string]: any;
|
|
10
10
|
}>(obj: T): T;
|
package/dist/utils.js
CHANGED
|
@@ -1,90 +1,115 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sortObj = exports.referencesToEntities = exports.entitiesToReferences = exports.classNamesToEntityConstructors = exports.uniqueStrings = exports.xor = void 0;
|
|
7
|
-
const Entity_1 = __importDefault(require("./Entity"));
|
|
8
|
-
function xor(a, b) {
|
|
1
|
+
import Entity from './Entity.js';
|
|
2
|
+
export function xor(a, b) {
|
|
9
3
|
return !!(a && !b) || (!a && b);
|
|
10
4
|
}
|
|
11
|
-
|
|
12
|
-
function uniqueStrings(array) {
|
|
5
|
+
export function uniqueStrings(array) {
|
|
13
6
|
const obj = {};
|
|
14
7
|
for (let i = 0; i < array.length; ++i) {
|
|
15
8
|
obj[array[i]] = true;
|
|
16
9
|
}
|
|
17
10
|
return Object.keys(obj);
|
|
18
11
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const [qrefOptions, ...selectors] = tmpArr[i][1];
|
|
40
|
-
const QrefEntityClass = typeof qrefOptions.class === 'string'
|
|
41
|
-
? nymph.getEntityClass(qrefOptions.class)
|
|
42
|
-
: qrefOptions.class ?? nymph.getEntityClass('Entity');
|
|
43
|
-
const options = { ...qrefOptions, class: QrefEntityClass };
|
|
44
|
-
if (!newSelector[key]) {
|
|
45
|
-
newSelector[key] = [];
|
|
46
|
-
}
|
|
47
|
-
newSelector[key].push([
|
|
48
|
-
name,
|
|
49
|
-
[options, ...classNamesToEntityConstructors(nymph, selectors)],
|
|
50
|
-
]);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else if (key === 'selector' || key === '!selector') {
|
|
54
|
-
const tmpArr = (Array.isArray(value) ? value : [value]);
|
|
55
|
-
newSelector[key] = classNamesToEntityConstructors(nymph, tmpArr);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
newSelector[key] = value;
|
|
59
|
-
}
|
|
12
|
+
export function entityConstructorsToClassNames(item) {
|
|
13
|
+
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
14
|
+
return item;
|
|
15
|
+
}
|
|
16
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
17
|
+
// Convert entity classes to class references.
|
|
18
|
+
return ['nymph_class_reference', item.class];
|
|
19
|
+
}
|
|
20
|
+
else if (item instanceof Entity) {
|
|
21
|
+
// Don't touch entities.
|
|
22
|
+
return item;
|
|
23
|
+
}
|
|
24
|
+
else if (Array.isArray(item)) {
|
|
25
|
+
// Recurse into lower arrays.
|
|
26
|
+
return item.map((entry) => entityConstructorsToClassNames(entry));
|
|
27
|
+
}
|
|
28
|
+
else if (item instanceof Object) {
|
|
29
|
+
let newObj = Object.create(item);
|
|
30
|
+
for (let [key, value] of Object.entries(item)) {
|
|
31
|
+
newObj[key] = entityConstructorsToClassNames(value);
|
|
60
32
|
}
|
|
61
|
-
|
|
33
|
+
return newObj;
|
|
62
34
|
}
|
|
63
|
-
return
|
|
35
|
+
// Not an entity or array, just return it.
|
|
36
|
+
return item;
|
|
64
37
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
38
|
+
export function classNamesToEntityConstructors(nymph, item, enforceRestEnabledFlag = false) {
|
|
39
|
+
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
40
|
+
return item;
|
|
41
|
+
}
|
|
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;
|
|
52
|
+
}
|
|
53
|
+
else if (item instanceof Entity) {
|
|
54
|
+
// Don't touch entities.
|
|
55
|
+
return item;
|
|
56
|
+
}
|
|
57
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
58
|
+
// Don't touch Entity classes.
|
|
59
|
+
return item;
|
|
69
60
|
}
|
|
70
61
|
else if (Array.isArray(item)) {
|
|
71
|
-
|
|
62
|
+
// Recurse into lower arrays.
|
|
63
|
+
return item.map((entry) => classNamesToEntityConstructors(nymph, entry, enforceRestEnabledFlag));
|
|
72
64
|
}
|
|
73
65
|
else if (item instanceof Object) {
|
|
74
66
|
let newObj = Object.create(item);
|
|
75
67
|
for (let [key, value] of Object.entries(item)) {
|
|
76
|
-
newObj[key] =
|
|
68
|
+
newObj[key] = classNamesToEntityConstructors(nymph, value, enforceRestEnabledFlag);
|
|
77
69
|
}
|
|
78
70
|
return newObj;
|
|
79
71
|
}
|
|
72
|
+
// Not an entity or array, just return it.
|
|
80
73
|
return item;
|
|
81
74
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
export function entitiesToReferences(item, existingOnly) {
|
|
76
|
+
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
77
|
+
return item;
|
|
78
|
+
}
|
|
79
|
+
else if (item instanceof Entity) {
|
|
80
|
+
// Convert entities to references.
|
|
81
|
+
return item.$toReference(existingOnly);
|
|
82
|
+
}
|
|
83
|
+
else if (typeof item === 'function' && item.prototype instanceof Entity) {
|
|
84
|
+
// Don't touch Entity classes.
|
|
85
|
+
return item;
|
|
86
|
+
}
|
|
87
|
+
else if (Array.isArray(item)) {
|
|
88
|
+
// Recurse into lower arrays.
|
|
89
|
+
return item.map((entry) => entitiesToReferences(entry, existingOnly));
|
|
90
|
+
}
|
|
91
|
+
else if (item instanceof Object) {
|
|
92
|
+
let newObj = Object.create(item);
|
|
93
|
+
for (let [key, value] of Object.entries(item)) {
|
|
94
|
+
newObj[key] = entitiesToReferences(value, existingOnly);
|
|
95
|
+
}
|
|
96
|
+
return newObj;
|
|
97
|
+
}
|
|
98
|
+
// Not an entity or array, just return it.
|
|
99
|
+
return item;
|
|
100
|
+
}
|
|
101
|
+
export function referencesToEntities(item, nymph, useSkipAc = false, enforceRestEnabledFlag = false) {
|
|
102
|
+
if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
|
|
103
|
+
return item;
|
|
104
|
+
}
|
|
105
|
+
else if (Array.isArray(item)) {
|
|
106
|
+
// Check if it's a reference.
|
|
85
107
|
if (item[0] === 'nymph_entity_reference') {
|
|
86
108
|
try {
|
|
87
109
|
const EntityClass = nymph.getEntityClass(item[2]);
|
|
110
|
+
if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
|
|
111
|
+
throw new Error('Not accessible.');
|
|
112
|
+
}
|
|
88
113
|
const entity = EntityClass.factoryReference(item);
|
|
89
114
|
entity.$useSkipAc(useSkipAc);
|
|
90
115
|
entity.$nymph = nymph;
|
|
@@ -95,26 +120,39 @@ function referencesToEntities(item, nymph, useSkipAc = false) {
|
|
|
95
120
|
}
|
|
96
121
|
}
|
|
97
122
|
else {
|
|
98
|
-
|
|
123
|
+
// Recurse into lower arrays.
|
|
124
|
+
return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc, enforceRestEnabledFlag));
|
|
99
125
|
}
|
|
100
126
|
}
|
|
101
|
-
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);
|
|
102
137
|
for (let [key, value] of Object.entries(item)) {
|
|
103
|
-
|
|
138
|
+
newObj[key] = referencesToEntities(value, nymph, useSkipAc, enforceRestEnabledFlag);
|
|
104
139
|
}
|
|
140
|
+
return newObj;
|
|
105
141
|
}
|
|
142
|
+
// Not an array, just return it.
|
|
106
143
|
return item;
|
|
107
144
|
}
|
|
108
|
-
|
|
109
|
-
|
|
145
|
+
export function sortObj(obj) {
|
|
146
|
+
// adapted from
|
|
147
|
+
// http://am.aurlien.net/post/1221493460/sorting-javascript-objects
|
|
110
148
|
const tempArray = Object.keys(obj);
|
|
111
149
|
tempArray.sort();
|
|
112
150
|
for (let i = 0; i < tempArray.length; i++) {
|
|
113
151
|
const temp = obj[tempArray[i]];
|
|
114
152
|
delete obj[tempArray[i]];
|
|
153
|
+
// @ts-ignore: string can't be used to index type T?? yes, it can.
|
|
115
154
|
obj[tempArray[i]] = temp;
|
|
116
155
|
}
|
|
117
156
|
return obj;
|
|
118
157
|
}
|
|
119
|
-
exports.sortObj = sortObj;
|
|
120
158
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/jest.config.js
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const jestConfig = {
|
|
2
|
+
extensionsToTreatAsEsm: ['.ts', '.tsx'],
|
|
3
|
+
testMatch: [
|
|
4
|
+
'<rootDir>/src/**/__tests__/**/*.{js,ts,jsx,tsx,mjs,mts}',
|
|
5
|
+
'<rootDir>/src/**/?(*.)(spec|test).{js,ts,jsx,tsx,mjs,mts}',
|
|
6
|
+
],
|
|
7
|
+
transform: {
|
|
8
|
+
'^.+\\.(ts|tsx|mts)$': [
|
|
9
|
+
'@swc/jest',
|
|
10
|
+
{
|
|
11
|
+
jsc: {
|
|
12
|
+
parser: {
|
|
13
|
+
syntax: 'typescript',
|
|
14
|
+
tsx: true,
|
|
15
|
+
decorators: true,
|
|
16
|
+
},
|
|
17
|
+
target: 'es2024',
|
|
18
|
+
},
|
|
19
|
+
module: {
|
|
20
|
+
type: 'commonjs',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$'],
|
|
26
|
+
moduleDirectories: ['node_modules', 'src'],
|
|
27
|
+
moduleNameMapper: {
|
|
28
|
+
'^(\\.|\\.\\.)\\/(.+)\\.js': '$1/$2',
|
|
29
|
+
},
|
|
6
30
|
};
|
|
31
|
+
|
|
32
|
+
export default jestConfig;
|
package/package.json
CHANGED
|
@@ -1,51 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/nymph",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "
|
|
5
|
-
"type": "
|
|
3
|
+
"version": "1.0.0-beta.130",
|
|
4
|
+
"description": "Application Data and Access Framework for Node.js and the Browser",
|
|
5
|
+
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"nymph",
|
|
10
|
+
"nymph.js",
|
|
11
|
+
"application data framework",
|
|
12
|
+
"application data and access framework",
|
|
13
|
+
"object relational mapper",
|
|
10
14
|
"ORM",
|
|
11
|
-
"
|
|
15
|
+
"user management",
|
|
16
|
+
"group management",
|
|
17
|
+
"application framework",
|
|
18
|
+
"data framework",
|
|
19
|
+
"database abstraction",
|
|
20
|
+
"database abstraction layer"
|
|
12
21
|
],
|
|
13
22
|
"scripts": {
|
|
14
23
|
"clean": "test -d dist && rm -r dist || true",
|
|
15
24
|
"build": "tsc",
|
|
16
25
|
"watch": "tsc --watch",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"test
|
|
26
|
+
"prepublish": "npm run clean && npm run build",
|
|
27
|
+
"typecheck": "npx tsc --noEmit",
|
|
28
|
+
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
|
|
29
|
+
"test:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests --watch"
|
|
20
30
|
},
|
|
21
31
|
"publishConfig": {
|
|
22
32
|
"access": "public"
|
|
23
33
|
},
|
|
34
|
+
"homepage": "https://nymph.io",
|
|
24
35
|
"repository": {
|
|
25
36
|
"type": "git",
|
|
26
|
-
"url": "
|
|
37
|
+
"url": "https://forge.sciactive.com/sciactive/nymphjs.git",
|
|
38
|
+
"directory": "packages/nymph"
|
|
27
39
|
},
|
|
28
|
-
"author": "Hunter Perrin <hperrin@
|
|
40
|
+
"author": "Hunter Perrin <hperrin@port87.com>",
|
|
29
41
|
"bugs": {
|
|
30
|
-
"url": "https://
|
|
42
|
+
"url": "https://forge.sciactive.com/sciactive/nymphjs/issues"
|
|
31
43
|
},
|
|
32
44
|
"license": "Apache-2.0",
|
|
33
45
|
"dependencies": {
|
|
34
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
46
|
+
"@nymphjs/guid": "^1.0.0-beta.130",
|
|
47
|
+
"@sciactive/tokenizer": "^3.4.0",
|
|
48
|
+
"debug": "^4.4.3",
|
|
49
|
+
"joi": "^18.2.5",
|
|
50
|
+
"locutus": "^3.0.36",
|
|
51
|
+
"lodash-es": "^4.18.1",
|
|
52
|
+
"n-readlines": "^3.4.1"
|
|
39
53
|
},
|
|
40
54
|
"devDependencies": {
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@types/
|
|
45
|
-
"@types/
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
55
|
+
"@swc/core": "^1.16.1",
|
|
56
|
+
"@swc/jest": "^0.2.39",
|
|
57
|
+
"@tsconfig/recommended": "^1.0.13",
|
|
58
|
+
"@types/debug": "^4.1.13",
|
|
59
|
+
"@types/jest": "^30.0.0",
|
|
60
|
+
"@types/locutus": "^0.0.8",
|
|
61
|
+
"@types/lodash-es": "^4.17.12",
|
|
62
|
+
"@types/n-readlines": "^1.0.6",
|
|
63
|
+
"@types/node": "^26.2.0",
|
|
64
|
+
"cross-env": "^10.1.0",
|
|
65
|
+
"jest": "^30.4.2",
|
|
66
|
+
"ts-node": "^10.9.2",
|
|
67
|
+
"typescript": "^7.0.2"
|
|
49
68
|
},
|
|
50
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "c6f7f2da04eec397ac1f9c64f1ce2ccc7fd47292"
|
|
51
70
|
}
|