@nymphjs/nymph 1.0.0-beta.10 → 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 +483 -0
- package/README.md +10 -20
- package/dist/Entity.d.ts +293 -10
- package/dist/Entity.js +563 -148
- package/dist/Entity.js.map +1 -1
- package/dist/Entity.test.js +52 -13
- package/dist/Entity.test.js.map +1 -1
- package/dist/Entity.types.d.ts +256 -23
- package/dist/Entity.types.js +1 -2
- package/dist/Nymph.d.ts +496 -12
- package/dist/Nymph.js +752 -179
- package/dist/Nymph.js.map +1 -1
- package/dist/Nymph.types.d.ts +77 -8
- package/dist/Nymph.types.js +3 -5
- package/dist/Nymph.types.js.map +1 -1
- package/dist/conf/d.d.ts +43 -0
- package/dist/conf/d.js +1 -2
- 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 +2 -2
- package/dist/conf/index.js +2 -8
- package/dist/conf/index.js.map +1 -1
- package/dist/driver/NymphDriver.d.ts +174 -40
- package/dist/driver/NymphDriver.js +469 -239
- package/dist/driver/NymphDriver.js.map +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +3 -23
- package/dist/driver/index.js.map +1 -1
- package/dist/driver/testArtifacts.d.ts +2 -2
- package/dist/driver/testArtifacts.js +814 -92
- 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/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/NotConfiguredError.js +1 -5
- package/dist/errors/NotConfiguredError.js.map +1 -1
- package/dist/errors/QueryFailedError.js +2 -5
- 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 +10 -8
- package/dist/errors/index.js +10 -24
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +14 -34
- package/dist/index.js.map +1 -1
- package/dist/nymphJoiProps.js +10 -15
- package/dist/nymphJoiProps.js.map +1 -1
- package/dist/testArtifacts.d.ts +19 -6
- package/dist/testArtifacts.js +32 -37
- package/dist/testArtifacts.js.map +1 -1
- package/dist/testMocks.d.ts +27 -12
- package/dist/testMocks.js +40 -29
- package/dist/testMocks.js.map +1 -1
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +40 -29
- package/dist/utils.js.map +1 -1
- package/jest.config.js +11 -2
- package/package.json +23 -19
- package/src/Entity.test.ts +50 -7
- package/src/Entity.ts +483 -147
- package/src/Entity.types.ts +72 -74
- package/src/Nymph.ts +868 -322
- package/src/Nymph.types.ts +146 -27
- package/src/conf/d.ts +25 -0
- package/src/conf/defaults.ts +34 -1
- package/src/conf/index.ts +2 -2
- package/src/driver/NymphDriver.ts +562 -414
- package/src/driver/index.ts +2 -2
- package/src/driver/testArtifacts.ts +954 -185
- package/src/errors/EntityUniqueConstraintError.ts +6 -0
- package/src/errors/InvalidStateError.ts +6 -0
- package/src/errors/index.ts +12 -8
- package/src/index.ts +11 -11
- package/src/nymphJoiProps.ts +2 -2
- package/src/testArtifacts.ts +20 -20
- package/src/testMocks.ts +76 -35
- package/src/type/locutus.d.ts +3 -0
- package/src/utils.ts +39 -18
- package/tsconfig.json +5 -3
- package/typedoc.json +4 -0
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,15 @@
|
|
|
1
|
+
import { createDefaultEsmPreset } from 'ts-jest';
|
|
2
|
+
|
|
3
|
+
const presetConfig = createDefaultEsmPreset();
|
|
4
|
+
|
|
1
5
|
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
-
|
|
3
|
-
|
|
6
|
+
const jestConfig = {
|
|
7
|
+
...presetConfig,
|
|
4
8
|
testEnvironment: 'node',
|
|
5
9
|
rootDir: 'src/',
|
|
10
|
+
moduleNameMapper: {
|
|
11
|
+
'^(\\.|\\.\\.)\\/(.+)\\.js': '$1/$2',
|
|
12
|
+
},
|
|
6
13
|
};
|
|
14
|
+
|
|
15
|
+
export default jestConfig;
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/nymph",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "
|
|
5
|
-
"type": "
|
|
3
|
+
"version": "1.0.0-beta.100",
|
|
4
|
+
"description": "Nymph.js - Nymph ORM",
|
|
5
|
+
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"keywords": [
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"clean": "test -d dist && rm -r dist || true",
|
|
15
15
|
"build": "tsc",
|
|
16
16
|
"watch": "tsc --watch",
|
|
17
|
-
"
|
|
18
|
-
"test": "jest",
|
|
19
|
-
"test:watch": "jest --watch"
|
|
17
|
+
"prepublish": "npm run clean && npm run build",
|
|
18
|
+
"test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest",
|
|
19
|
+
"test:watch": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest --watch"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"access": "public"
|
|
@@ -31,21 +31,25 @@
|
|
|
31
31
|
},
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
34
|
+
"@nymphjs/guid": "^1.0.0-beta.100",
|
|
35
|
+
"@sciactive/tokenizer": "^3.0.2",
|
|
36
|
+
"debug": "^4.4.0",
|
|
37
|
+
"joi": "^17.13.3",
|
|
38
|
+
"locutus": "^2.0.32",
|
|
39
|
+
"lodash-es": "^4.17.21",
|
|
38
40
|
"n-readlines": "^1.0.3"
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
|
-
"@tsconfig/recommended": "^1.0.
|
|
42
|
-
"@types/
|
|
43
|
-
"@types/
|
|
44
|
-
"@types/
|
|
45
|
-
"@types/
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
43
|
+
"@tsconfig/recommended": "^1.0.8",
|
|
44
|
+
"@types/debug": "^4.1.12",
|
|
45
|
+
"@types/jest": "^29.5.14",
|
|
46
|
+
"@types/locutus": "^0.0.8",
|
|
47
|
+
"@types/lodash-es": "^4.17.12",
|
|
48
|
+
"@types/n-readlines": "^1.0.6",
|
|
49
|
+
"jest": "^29.7.0",
|
|
50
|
+
"ts-jest": "^29.2.5",
|
|
51
|
+
"ts-node": "^10.9.2",
|
|
52
|
+
"typescript": "^5.7.2"
|
|
49
53
|
},
|
|
50
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "254b2ccd1cc7838dcbf08e860d2833475a15b244"
|
|
51
55
|
}
|
package/src/Entity.test.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jest } from '@jest/globals';
|
|
2
|
+
|
|
3
|
+
import { cloneDeep } from 'lodash-es';
|
|
4
|
+
|
|
5
|
+
import { MockNymph } from './testMocks.js';
|
|
2
6
|
import {
|
|
3
7
|
TestBModel as TestBModelClass,
|
|
4
8
|
TestModel as TestModelClass,
|
|
5
9
|
TestModelData,
|
|
6
|
-
} from './testArtifacts';
|
|
7
|
-
import { cloneDeep } from 'lodash';
|
|
10
|
+
} from './testArtifacts.js';
|
|
8
11
|
|
|
9
12
|
const nymph = new MockNymph();
|
|
10
13
|
|
|
@@ -142,7 +145,7 @@ describe('Entity', () => {
|
|
|
142
145
|
await testEntity.$refresh();
|
|
143
146
|
|
|
144
147
|
expect(testEntityCopy.mdate ?? Infinity).toBeLessThanOrEqual(
|
|
145
|
-
testEntity.mdate ?? 0
|
|
148
|
+
testEntity.mdate ?? 0,
|
|
146
149
|
);
|
|
147
150
|
});
|
|
148
151
|
|
|
@@ -156,13 +159,25 @@ describe('Entity', () => {
|
|
|
156
159
|
]);
|
|
157
160
|
});
|
|
158
161
|
|
|
162
|
+
it('toReference works even on an unsaved entity', () => {
|
|
163
|
+
const unsavedEntity = TestModel.factorySync();
|
|
164
|
+
const reference = unsavedEntity.$toReference();
|
|
165
|
+
|
|
166
|
+
expect(unsavedEntity.guid).toBeNull();
|
|
167
|
+
expect(reference).toEqual([
|
|
168
|
+
'nymph_entity_reference',
|
|
169
|
+
unsavedEntity.$getGuaranteedGUID(),
|
|
170
|
+
'TestModel',
|
|
171
|
+
]);
|
|
172
|
+
});
|
|
173
|
+
|
|
159
174
|
it('tags work', async () => {
|
|
160
175
|
expect(testEntity.$hasTag('test')).toEqual(true);
|
|
161
176
|
testEntity.$addTag('test', 'test2');
|
|
162
177
|
expect(testEntity.$hasTag('test', 'test2')).toEqual(true);
|
|
163
178
|
testEntity.$addTag('test', 'test3', 'test4', 'test5', 'test6');
|
|
164
179
|
expect(
|
|
165
|
-
testEntity.$hasTag('test', 'test3', 'test4', 'test5', 'test6')
|
|
180
|
+
testEntity.$hasTag('test', 'test3', 'test4', 'test5', 'test6'),
|
|
166
181
|
).toEqual(true);
|
|
167
182
|
testEntity.$removeTag('test2');
|
|
168
183
|
expect(testEntity.$hasTag('test2')).toEqual(false);
|
|
@@ -183,27 +198,34 @@ describe('Entity', () => {
|
|
|
183
198
|
expect(testEntity.$hasTag('test')).toEqual(true);
|
|
184
199
|
});
|
|
185
200
|
|
|
186
|
-
it('references
|
|
201
|
+
it('references work', async () => {
|
|
187
202
|
await testEntity.$refresh();
|
|
188
203
|
|
|
204
|
+
await testEntity.reference?.$wake();
|
|
189
205
|
expect(testEntity.reference?.guid).toEqual(entityReferenceGuid);
|
|
206
|
+
await Promise.all(testEntity.refArray?.map((e) => e.$wake()) || []);
|
|
190
207
|
expect(testEntity.refArray?.[0].guid).toEqual(entityReferenceGuid);
|
|
208
|
+
await testEntity.refObject?.entity.$wake();
|
|
191
209
|
expect(testEntity.refObject?.entity.guid).toEqual(entityReferenceGuid);
|
|
192
210
|
|
|
193
211
|
const entity = await TestModel.factory(testEntity.guid as string);
|
|
194
212
|
|
|
213
|
+
await entity.reference?.$wake();
|
|
195
214
|
expect(entity.reference?.guid).toEqual(entityReferenceGuid);
|
|
215
|
+
await Promise.all(entity.refArray?.map((e) => e.$wake()) || []);
|
|
196
216
|
expect(entity.refArray?.[0].guid).toEqual(entityReferenceGuid);
|
|
217
|
+
await entity.refObject?.entity.$wake();
|
|
197
218
|
expect(entity.refObject?.entity.guid).toEqual(entityReferenceGuid);
|
|
198
219
|
});
|
|
199
220
|
|
|
200
|
-
it('sleeping references wake up', () => {
|
|
221
|
+
it('sleeping references wake up', async () => {
|
|
201
222
|
const entity = TestModel.factoryReference([
|
|
202
223
|
'nymph_entity_reference',
|
|
203
224
|
testEntity.guid as string,
|
|
204
225
|
'TestModel',
|
|
205
226
|
]) as TestModelClass & TestModelData;
|
|
206
227
|
|
|
228
|
+
await entity.$wake();
|
|
207
229
|
expect(entity.guid).toEqual(testEntity.guid);
|
|
208
230
|
expect(entity.cdate).toEqual(testEntity.cdate);
|
|
209
231
|
expect(entity.mdate).toEqual(testEntity.mdate);
|
|
@@ -213,8 +235,11 @@ describe('Entity', () => {
|
|
|
213
235
|
expect(entity.string).toEqual('test');
|
|
214
236
|
expect(entity.array).toEqual(['full', 'of', 'values', 500]);
|
|
215
237
|
expect(entity.number).toEqual(30);
|
|
238
|
+
await entity.reference?.$wake();
|
|
216
239
|
expect(entity.reference?.guid).toEqual(entityReferenceGuid);
|
|
240
|
+
await Promise.all(entity.refArray?.map((e) => e.$wake()) || []);
|
|
217
241
|
expect(entity.refArray?.[0].guid).toEqual(entityReferenceGuid);
|
|
242
|
+
await entity.refObject?.entity.$wake();
|
|
218
243
|
expect(entity.refObject?.entity.guid).toEqual(entityReferenceGuid);
|
|
219
244
|
});
|
|
220
245
|
|
|
@@ -239,6 +264,7 @@ describe('Entity', () => {
|
|
|
239
264
|
array: ['full', 'of', 'values', 500],
|
|
240
265
|
string: 'test',
|
|
241
266
|
null: null,
|
|
267
|
+
uniques: [],
|
|
242
268
|
},
|
|
243
269
|
class: 'TestModel',
|
|
244
270
|
});
|
|
@@ -288,8 +314,11 @@ describe('Entity', () => {
|
|
|
288
314
|
expect(testEntity.string).toEqual('good');
|
|
289
315
|
expect(testEntity.array).toEqual(['imanarray']);
|
|
290
316
|
expect(testEntity.number).toEqual(30);
|
|
317
|
+
await testEntity.reference?.$wake();
|
|
291
318
|
expect(testEntity.reference?.guid).toEqual(entityReferenceGuid);
|
|
319
|
+
await Promise.all(testEntity.refArray?.map((e) => e.$wake()) || []);
|
|
292
320
|
expect(testEntity.refArray?.[0].guid).toEqual(entityReferenceGuid);
|
|
321
|
+
await testEntity.refObject?.entity.$wake();
|
|
293
322
|
expect(testEntity.refObject?.entity.guid).toEqual(entityReferenceGuid);
|
|
294
323
|
|
|
295
324
|
expect(await testEntity.$refresh()).toEqual(true);
|
|
@@ -311,7 +340,9 @@ describe('Entity', () => {
|
|
|
311
340
|
expect(testEntity.$hasTag('notag')).toEqual(false);
|
|
312
341
|
expect(testEntity.$hasTag('test')).toEqual(true);
|
|
313
342
|
expect(testEntity.$hasTag('newtag')).toEqual(true);
|
|
343
|
+
await testEntity.reference?.$wake();
|
|
314
344
|
expect(testEntity.reference?.guid).toEqual(entityReferenceGuid);
|
|
345
|
+
await Promise.all(testEntity.refArray?.map((e) => e.$wake()) || []);
|
|
315
346
|
expect(testEntity.refArray?.[0].guid).toEqual(entityReferenceGuid);
|
|
316
347
|
|
|
317
348
|
expect(await testEntity.$refresh()).toEqual(true);
|
|
@@ -403,4 +434,16 @@ describe('Entity', () => {
|
|
|
403
434
|
|
|
404
435
|
expect(thrown).toEqual(true);
|
|
405
436
|
});
|
|
437
|
+
|
|
438
|
+
it('JSON with new entities works', async () => {
|
|
439
|
+
testEntity.reference = await TestModel.factory();
|
|
440
|
+
|
|
441
|
+
// Test that an old JSON payload causes a conflict.
|
|
442
|
+
const json = JSON.stringify(testEntity);
|
|
443
|
+
const data = JSON.parse(json);
|
|
444
|
+
|
|
445
|
+
testEntity.$jsonAcceptData(data);
|
|
446
|
+
|
|
447
|
+
expect(testEntity.reference.guid).toBeNull();
|
|
448
|
+
});
|
|
406
449
|
});
|