@forestadmin/datasource-customizer 1.0.0-alpha.1
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/LICENSE +674 -0
- package/README.md +0 -0
- package/dist/collection-customizer.d.ts +263 -0
- package/dist/collection-customizer.js +397 -0
- package/dist/context/agent-context.d.ts +11 -0
- package/dist/context/agent-context.js +20 -0
- package/dist/context/collection-context.d.ts +10 -0
- package/dist/context/collection-context.js +18 -0
- package/dist/context/relaxed-wrappers/collection.d.ts +112 -0
- package/dist/context/relaxed-wrappers/collection.js +161 -0
- package/dist/context/relaxed-wrappers/datasource.d.ts +15 -0
- package/dist/context/relaxed-wrappers/datasource.js +22 -0
- package/dist/datasource-customizer.d.ts +53 -0
- package/dist/datasource-customizer.js +89 -0
- package/dist/decorators/actions/collection.d.ts +18 -0
- package/dist/decorators/actions/collection.js +104 -0
- package/dist/decorators/actions/context/base.d.ts +28 -0
- package/dist/decorators/actions/context/base.js +105 -0
- package/dist/decorators/actions/context/single.d.ts +9 -0
- package/dist/decorators/actions/context/single.js +22 -0
- package/dist/decorators/actions/result-builder.d.ts +53 -0
- package/dist/decorators/actions/result-builder.js +81 -0
- package/dist/decorators/actions/types/actions.d.ts +18 -0
- package/dist/decorators/actions/types/actions.js +3 -0
- package/dist/decorators/actions/types/fields.d.ts +32 -0
- package/dist/decorators/actions/types/fields.js +3 -0
- package/dist/decorators/chart/datasource.d.ts +11 -0
- package/dist/decorators/chart/datasource.js +38 -0
- package/dist/decorators/chart/result-builder.d.ts +12 -0
- package/dist/decorators/chart/result-builder.js +48 -0
- package/dist/decorators/chart/types.d.ts +6 -0
- package/dist/decorators/chart/types.js +3 -0
- package/dist/decorators/collection-decorator.d.ts +21 -0
- package/dist/decorators/collection-decorator.js +57 -0
- package/dist/decorators/composite-datasource.d.ts +11 -0
- package/dist/decorators/composite-datasource.js +38 -0
- package/dist/decorators/computed/collection.d.ts +14 -0
- package/dist/decorators/computed/collection.js +69 -0
- package/dist/decorators/computed/helpers/compute-fields.d.ts +5 -0
- package/dist/decorators/computed/helpers/compute-fields.js +36 -0
- package/dist/decorators/computed/helpers/rewrite-projection.d.ts +4 -0
- package/dist/decorators/computed/helpers/rewrite-projection.js +22 -0
- package/dist/decorators/computed/types.d.ts +11 -0
- package/dist/decorators/computed/types.js +3 -0
- package/dist/decorators/computed/utils/deduplication.d.ts +2 -0
- package/dist/decorators/computed/utils/deduplication.js +28 -0
- package/dist/decorators/computed/utils/flattener.d.ts +6 -0
- package/dist/decorators/computed/utils/flattener.js +35 -0
- package/dist/decorators/datasource-decorator.d.ts +15 -0
- package/dist/decorators/datasource-decorator.js +27 -0
- package/dist/decorators/decorators-stack.d.ts +42 -0
- package/dist/decorators/decorators-stack.js +59 -0
- package/dist/decorators/empty/collection.d.ts +18 -0
- package/dist/decorators/empty/collection.js +85 -0
- package/dist/decorators/hook/collection.d.ts +13 -0
- package/dist/decorators/hook/collection.js +67 -0
- package/dist/decorators/hook/context/aggregate.d.ts +22 -0
- package/dist/decorators/hook/context/aggregate.js +46 -0
- package/dist/decorators/hook/context/create.d.ts +17 -0
- package/dist/decorators/hook/context/create.js +35 -0
- package/dist/decorators/hook/context/delete.d.ts +14 -0
- package/dist/decorators/hook/context/delete.js +28 -0
- package/dist/decorators/hook/context/hook.d.ts +26 -0
- package/dist/decorators/hook/context/hook.js +38 -0
- package/dist/decorators/hook/context/list.d.ts +20 -0
- package/dist/decorators/hook/context/list.js +42 -0
- package/dist/decorators/hook/context/update.d.ts +16 -0
- package/dist/decorators/hook/context/update.js +31 -0
- package/dist/decorators/hook/hook.d.ts +10 -0
- package/dist/decorators/hook/hook.js +30 -0
- package/dist/decorators/hook/types.d.ts +27 -0
- package/dist/decorators/hook/types.js +3 -0
- package/dist/decorators/operators-emulate/collection.d.ts +15 -0
- package/dist/decorators/operators-emulate/collection.js +99 -0
- package/dist/decorators/operators-emulate/types.d.ts +4 -0
- package/dist/decorators/operators-emulate/types.js +3 -0
- package/dist/decorators/operators-replace/collection.d.ts +10 -0
- package/dist/decorators/operators-replace/collection.js +35 -0
- package/dist/decorators/publication/collection.d.ts +14 -0
- package/dist/decorators/publication/collection.js +63 -0
- package/dist/decorators/relation/collection.d.ts +23 -0
- package/dist/decorators/relation/collection.js +190 -0
- package/dist/decorators/relation/types.d.ts +5 -0
- package/dist/decorators/relation/types.js +3 -0
- package/dist/decorators/rename-collection/collection.d.ts +15 -0
- package/dist/decorators/rename-collection/collection.js +50 -0
- package/dist/decorators/rename-collection/datasource.d.ts +11 -0
- package/dist/decorators/rename-collection/datasource.js +33 -0
- package/dist/decorators/rename-field/collection.d.ts +33 -0
- package/dist/decorators/rename-field/collection.js +149 -0
- package/dist/decorators/schema/collection.d.ts +13 -0
- package/dist/decorators/schema/collection.js +26 -0
- package/dist/decorators/search/collection.d.ts +14 -0
- package/dist/decorators/search/collection.js +105 -0
- package/dist/decorators/search/types.d.ts +4 -0
- package/dist/decorators/search/types.js +3 -0
- package/dist/decorators/segment/collection.d.ts +10 -0
- package/dist/decorators/segment/collection.js +43 -0
- package/dist/decorators/segment/types.d.ts +4 -0
- package/dist/decorators/segment/types.js +3 -0
- package/dist/decorators/sort-emulate/collection.d.ts +15 -0
- package/dist/decorators/sort-emulate/collection.js +97 -0
- package/dist/decorators/validation/collection.d.ts +20 -0
- package/dist/decorators/validation/collection.js +109 -0
- package/dist/decorators/write/collection.d.ts +26 -0
- package/dist/decorators/write/collection.js +214 -0
- package/dist/decorators/write/context.d.ts +9 -0
- package/dist/decorators/write/context.js +15 -0
- package/dist/decorators/write/types.d.ts +4 -0
- package/dist/decorators/write/types.js +3 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +27 -0
- package/dist/templates.d.ts +65 -0
- package/dist/templates.js +3 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +3 -0
- package/dist/typing-generator.d.ts +19 -0
- package/dist/typing-generator.js +123 -0
- package/package.json +37 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
4
|
+
const promises_1 = require("fs/promises");
|
|
5
|
+
class TypingGenerator {
|
|
6
|
+
/**
|
|
7
|
+
* Write types to disk at a given path.
|
|
8
|
+
* This method read the file which is already there before overwriting so that customers
|
|
9
|
+
* using equivalents to nodemon to not enter restart loops.
|
|
10
|
+
*/
|
|
11
|
+
static async updateTypesOnFileSystem(dataSource, typingsPath, typingsMaxDepth) {
|
|
12
|
+
const newTypes = TypingGenerator.generateTypes(dataSource, typingsMaxDepth);
|
|
13
|
+
let olderTypes = null;
|
|
14
|
+
try {
|
|
15
|
+
olderTypes = await (0, promises_1.readFile)(typingsPath, { encoding: 'utf-8' });
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (e.code === 'ENOENT')
|
|
19
|
+
olderTypes = null;
|
|
20
|
+
else
|
|
21
|
+
throw e;
|
|
22
|
+
}
|
|
23
|
+
if (newTypes !== olderTypes) {
|
|
24
|
+
await (0, promises_1.writeFile)(typingsPath, newTypes, { encoding: 'utf-8' });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generates types on a string.
|
|
29
|
+
*/
|
|
30
|
+
static generateTypes(dataSource, maxDepth) {
|
|
31
|
+
const collections = [...dataSource.collections].sort((a, b) => a.name.localeCompare(b.name));
|
|
32
|
+
return [
|
|
33
|
+
`/* eslint-disable */`,
|
|
34
|
+
'export type Schema = {',
|
|
35
|
+
...collections.map(collection => [
|
|
36
|
+
` '${collection.name}': {`,
|
|
37
|
+
this.getRow(collection),
|
|
38
|
+
this.getRelations(collection),
|
|
39
|
+
this.getFlatRelations(collection, maxDepth),
|
|
40
|
+
' };',
|
|
41
|
+
].join(`\n`)),
|
|
42
|
+
'};\n',
|
|
43
|
+
].join('\n');
|
|
44
|
+
}
|
|
45
|
+
static getRow(collection) {
|
|
46
|
+
const content = Object.entries(collection.schema.fields).reduce((memo, [name, field]) => {
|
|
47
|
+
return field.type === 'Column' ? [...memo, ` '${name}': ${this.getType(field)};`] : memo;
|
|
48
|
+
}, []);
|
|
49
|
+
return ` plain: {\n${content.join('\n')}\n };`;
|
|
50
|
+
}
|
|
51
|
+
static getRelations(collection) {
|
|
52
|
+
const content = Object.entries(collection.schema.fields).reduce((memo, [name, field]) => {
|
|
53
|
+
if (field.type === 'ManyToOne' || field.type === 'OneToOne') {
|
|
54
|
+
const relation = field.foreignCollection;
|
|
55
|
+
return [
|
|
56
|
+
...memo,
|
|
57
|
+
` '${name}': Schema['${relation}']['plain'] & Schema['${relation}']['nested'];`,
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
return memo;
|
|
61
|
+
}, []);
|
|
62
|
+
return content.length ? ` nested: {\n${content.join('\n')}\n };` : ` nested: {};`;
|
|
63
|
+
}
|
|
64
|
+
static getFlatRelations(collection, maxDepth) {
|
|
65
|
+
const fields = this.getFieldsRec(collection, maxDepth, []);
|
|
66
|
+
return fields.length
|
|
67
|
+
? ` flat: {\n ${fields.join('\n ')}\n };`
|
|
68
|
+
: ` flat: {};`;
|
|
69
|
+
}
|
|
70
|
+
static getFieldsRec(collection, maxDepth, traversed) {
|
|
71
|
+
const columns = traversed.length > 0
|
|
72
|
+
? Object.entries(collection.schema.fields)
|
|
73
|
+
.filter(([, schema]) => schema.type === 'Column')
|
|
74
|
+
.map(([name, schema]) => `'${name}': ${this.getType(schema)};`)
|
|
75
|
+
: [];
|
|
76
|
+
const relations = Object.entries(collection.schema.fields).reduce((memo, [name, schema]) => {
|
|
77
|
+
if (schema.type !== 'ManyToOne' && schema.type !== 'OneToOne')
|
|
78
|
+
return memo;
|
|
79
|
+
const subCollection = collection.dataSource.getCollection(schema.foreignCollection);
|
|
80
|
+
const inverse = datasource_toolkit_1.CollectionUtils.getInverseRelation(collection, name);
|
|
81
|
+
// Do not expand inverse relations, as those create useless cycles
|
|
82
|
+
const expand = traversed.length < maxDepth &&
|
|
83
|
+
!traversed.find(({ c, r }) => c === subCollection && r === inverse);
|
|
84
|
+
if (!expand)
|
|
85
|
+
return memo;
|
|
86
|
+
// Manually expand the field type (cycles are not allowed in template literal types)
|
|
87
|
+
return [
|
|
88
|
+
...memo,
|
|
89
|
+
...this.getFieldsRec(subCollection, maxDepth, [
|
|
90
|
+
...traversed,
|
|
91
|
+
{ c: collection, r: name },
|
|
92
|
+
]).map(f => `'${name}:${f.slice(1)}`),
|
|
93
|
+
];
|
|
94
|
+
}, []);
|
|
95
|
+
return [...columns, ...relations];
|
|
96
|
+
}
|
|
97
|
+
static getType(field) {
|
|
98
|
+
if (Array.isArray(field.columnType)) {
|
|
99
|
+
return `Array<${this.getType({ columnType: field.columnType[0] })}>`;
|
|
100
|
+
}
|
|
101
|
+
if (field.columnType === 'Enum') {
|
|
102
|
+
return field.enumValues.map(v => `'${v.replace(/'/g, "\\'")}'`).join(' | ');
|
|
103
|
+
}
|
|
104
|
+
if (typeof field.columnType === 'string') {
|
|
105
|
+
return {
|
|
106
|
+
Boolean: 'boolean',
|
|
107
|
+
Date: 'string',
|
|
108
|
+
Dateonly: 'string',
|
|
109
|
+
Json: 'any',
|
|
110
|
+
Number: 'number',
|
|
111
|
+
Point: '[number, number]',
|
|
112
|
+
String: 'string',
|
|
113
|
+
Timeonly: 'string',
|
|
114
|
+
Uuid: 'string',
|
|
115
|
+
}[field.columnType];
|
|
116
|
+
}
|
|
117
|
+
return `{${Object.entries(field.columnType)
|
|
118
|
+
.map(([key, subType]) => `${key}: ${this.getType({ columnType: subType })}`)
|
|
119
|
+
.join('; ')}}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.default = TypingGenerator;
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwaW5nLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBpbmctZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0VBTXlDO0FBQ3pDLDBDQUFrRDtBQUVsRCxNQUFxQixlQUFlO0lBQ2xDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUNsQyxVQUFzQixFQUN0QixXQUFtQixFQUNuQixlQUF1QjtRQUV2QixNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RSxJQUFJLFVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRXJDLElBQUk7WUFDRixVQUFVLEdBQUcsTUFBTSxJQUFBLG1CQUFRLEVBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDakU7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRO2dCQUFFLFVBQVUsR0FBRyxJQUFJLENBQUM7O2dCQUN0QyxNQUFNLENBQUMsQ0FBQztTQUNkO1FBRUQsSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sSUFBQSxvQkFBUyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBc0IsRUFBRSxRQUFnQjtRQUMzRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdG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
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@forestadmin/datasource-customizer",
|
|
3
|
+
"version": "1.0.0-alpha.1",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"license": "GPL-3.0",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/ForestAdmin/agent-nodejs.git",
|
|
12
|
+
"directory": "packages/datasource-customizer"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist/**/*.js",
|
|
16
|
+
"dist/**/*.d.ts"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"build:watch": "tsc --watch",
|
|
21
|
+
"clean": "rm -rf coverage dist",
|
|
22
|
+
"lint": "eslint src test",
|
|
23
|
+
"test": "jest"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/luxon": "^2.0.9",
|
|
27
|
+
"@types/object-hash": "^2.2.1",
|
|
28
|
+
"@types/uuid": "^8.3.4",
|
|
29
|
+
"fishery": "^2.1.0"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@forestadmin/datasource-toolkit": "1.0.0-alpha.1",
|
|
33
|
+
"luxon": "^2.3.0",
|
|
34
|
+
"object-hash": "^3.0.0",
|
|
35
|
+
"uuid": "^8.3.2"
|
|
36
|
+
}
|
|
37
|
+
}
|