@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}/utils.d.ts
RENAMED
package/{lib → dist}/utils.js
RENAMED
|
@@ -1,25 +1,20 @@
|
|
|
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.entityConstructorsToClassNames = exports.uniqueStrings = void 0;
|
|
7
|
-
const Entity_1 = __importDefault(require("./Entity"));
|
|
8
|
-
function uniqueStrings(array) {
|
|
1
|
+
import Entity from './Entity.js';
|
|
2
|
+
export function uniqueStrings(array) {
|
|
9
3
|
const obj = {};
|
|
10
4
|
for (let i = 0; i < array.length; ++i) {
|
|
11
5
|
obj[array[i]] = true;
|
|
12
6
|
}
|
|
13
7
|
return Object.keys(obj);
|
|
14
8
|
}
|
|
15
|
-
|
|
16
|
-
function entityConstructorsToClassNames(item) {
|
|
9
|
+
export function entityConstructorsToClassNames(item) {
|
|
17
10
|
if (typeof item === 'function' &&
|
|
18
|
-
item.prototype instanceof
|
|
11
|
+
item.prototype instanceof Entity &&
|
|
19
12
|
typeof item.class === 'string') {
|
|
13
|
+
// Convert entity classes to strings.
|
|
20
14
|
return item.class;
|
|
21
15
|
}
|
|
22
16
|
else if (Array.isArray(item)) {
|
|
17
|
+
// Recurse into lower arrays.
|
|
23
18
|
return item.map((entry) => entityConstructorsToClassNames(entry));
|
|
24
19
|
}
|
|
25
20
|
else if (item instanceof Object) {
|
|
@@ -29,14 +24,20 @@ function entityConstructorsToClassNames(item) {
|
|
|
29
24
|
}
|
|
30
25
|
return newObj;
|
|
31
26
|
}
|
|
27
|
+
// Not an entity or array, just return it.
|
|
32
28
|
return item;
|
|
33
29
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
export function entitiesToReferences(item) {
|
|
31
|
+
if (item == null) {
|
|
32
|
+
return item;
|
|
33
|
+
}
|
|
34
|
+
else if (item instanceof Entity &&
|
|
35
|
+
typeof item.$toReference === 'function') {
|
|
36
|
+
// Convert entities to references.
|
|
37
37
|
return item.$toReference();
|
|
38
38
|
}
|
|
39
39
|
else if (Array.isArray(item)) {
|
|
40
|
+
// Recurse into lower arrays.
|
|
40
41
|
return item.map((entry) => entitiesToReferences(entry));
|
|
41
42
|
}
|
|
42
43
|
else if (item instanceof Object) {
|
|
@@ -46,11 +47,15 @@ function entitiesToReferences(item) {
|
|
|
46
47
|
}
|
|
47
48
|
return newObj;
|
|
48
49
|
}
|
|
50
|
+
// Not an entity or array, just return it.
|
|
49
51
|
return item;
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
export function referencesToEntities(item, nymph) {
|
|
54
|
+
if (item == null) {
|
|
55
|
+
return item;
|
|
56
|
+
}
|
|
57
|
+
else if (Array.isArray(item)) {
|
|
58
|
+
// Check if it's a reference.
|
|
54
59
|
if (item[0] === 'nymph_entity_reference') {
|
|
55
60
|
try {
|
|
56
61
|
const EntityClass = nymph.getEntityClass(item[2]);
|
|
@@ -61,18 +66,21 @@ function referencesToEntities(item, nymph) {
|
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
else {
|
|
69
|
+
// Recurse into lower arrays.
|
|
64
70
|
return item.map((item) => referencesToEntities(item, nymph));
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
|
-
else if (
|
|
73
|
+
else if (Entity && item instanceof Object && !(item instanceof Entity)) {
|
|
68
74
|
for (let [key, value] of Object.entries(item)) {
|
|
69
75
|
item[key] = referencesToEntities(value, nymph);
|
|
70
76
|
}
|
|
71
77
|
}
|
|
78
|
+
// Not an array, just return it.
|
|
72
79
|
return item;
|
|
73
80
|
}
|
|
74
|
-
|
|
75
|
-
|
|
81
|
+
export function sortObj(obj) {
|
|
82
|
+
// adapted from
|
|
83
|
+
// http://am.aurlien.net/post/1221493460/sorting-javascript-objects
|
|
76
84
|
const tempArray = Object.keys(obj);
|
|
77
85
|
tempArray.sort();
|
|
78
86
|
for (let i = 0; i < tempArray.length; i++) {
|
|
@@ -82,5 +90,4 @@ function sortObj(obj) {
|
|
|
82
90
|
}
|
|
83
91
|
return obj;
|
|
84
92
|
}
|
|
85
|
-
exports.sortObj = sortObj;
|
|
86
93
|
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,27 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/client",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"main": "
|
|
7
|
-
"types": "
|
|
3
|
+
"version": "1.0.0-beta.91",
|
|
4
|
+
"description": "Nymph.js - Client",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"nymph",
|
|
10
10
|
"ORM",
|
|
11
11
|
"object relational mapper"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"clean": "
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"watch:ts": "tsc --watch",
|
|
21
|
-
"watch:js": "webpack --watch",
|
|
22
|
-
"prepare": "npm run clean && npm run build",
|
|
23
|
-
"test": "jest --detectOpenHandles",
|
|
24
|
-
"test:watch": "jest --watch"
|
|
14
|
+
"clean": "test -d dist && rm -r dist || true",
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"watch": "tsc --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"
|
|
25
20
|
},
|
|
26
21
|
"publishConfig": {
|
|
27
22
|
"access": "public"
|
|
@@ -35,17 +30,18 @@
|
|
|
35
30
|
"url": "https://github.com/sciactive/nymphjs/issues"
|
|
36
31
|
},
|
|
37
32
|
"license": "Apache-2.0",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"fetch-event-source-hperrin": "^3.0.0",
|
|
35
|
+
"lodash-es": "^4.17.21"
|
|
36
|
+
},
|
|
38
37
|
"devDependencies": {
|
|
39
|
-
"@tsconfig/recommended": "^1.0.
|
|
40
|
-
"@types/jest": "^29.
|
|
41
|
-
"@types/lodash": "^4.
|
|
42
|
-
"jest": "^29.
|
|
43
|
-
"
|
|
44
|
-
"ts-
|
|
45
|
-
"
|
|
46
|
-
"typescript": "^4.9.4",
|
|
47
|
-
"webpack": "^5.75.0",
|
|
48
|
-
"webpack-cli": "^5.0.1"
|
|
38
|
+
"@tsconfig/recommended": "^1.0.8",
|
|
39
|
+
"@types/jest": "^29.5.14",
|
|
40
|
+
"@types/lodash-es": "^4.17.12",
|
|
41
|
+
"jest": "^29.7.0",
|
|
42
|
+
"ts-jest": "^29.2.5",
|
|
43
|
+
"ts-node": "^10.9.2",
|
|
44
|
+
"typescript": "^5.7.2"
|
|
49
45
|
},
|
|
50
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "45074e1da0e7879625382a3d35134cde45793f24"
|
|
51
47
|
}
|