@forestadmin/plugin-flattener 1.4.27 → 1.5.0
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.
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { CollectionCustomizer, HookBeforeCreateContext, HookBeforeUpdateContext } from '@forestadmin/datasource-customizer';
|
|
2
|
-
import type { ColumnType } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import type { ColumnType, RecordData } from '@forestadmin/datasource-toolkit';
|
|
3
3
|
export declare function makeField(columnName: string, path: string, baseColumnType: ColumnType): {
|
|
4
4
|
columnType: ColumnType;
|
|
5
|
+
enumValues: string[];
|
|
5
6
|
dependencies: string[];
|
|
6
|
-
getValues: (records:
|
|
7
|
+
getValues: (records: RecordData[]) => unknown[];
|
|
8
|
+
} | {
|
|
9
|
+
columnType: ColumnType;
|
|
10
|
+
dependencies: string[];
|
|
11
|
+
getValues: (records: RecordData[]) => unknown[];
|
|
7
12
|
};
|
|
8
13
|
export declare function makeWriteHandler(path: string): () => never;
|
|
9
14
|
export declare function makeCreateHook(paths: string[]): (context: HookBeforeCreateContext) => Promise<void>;
|
|
@@ -14,11 +14,14 @@ function makeField(columnName, path, baseColumnType) {
|
|
|
14
14
|
const columnType = (0, helpers_1.getValue)({ [columnName]: baseColumnType }, path);
|
|
15
15
|
if (!columnType)
|
|
16
16
|
throw new Error(`Cannot add field '${path}' (dependency not found).`);
|
|
17
|
-
|
|
18
|
-
columnType,
|
|
17
|
+
const base = {
|
|
19
18
|
dependencies: [columnName],
|
|
20
|
-
getValues: records => records.map(r => (0, helpers_1.getValue)(r, path)),
|
|
19
|
+
getValues: (records) => records.map(r => (0, helpers_1.getValue)(r, path)),
|
|
21
20
|
};
|
|
21
|
+
if (datasource_toolkit_1.TypeGetter.isEnumField(columnType)) {
|
|
22
|
+
return { ...base, columnType: 'Enum', enumValues: columnType.enumValues };
|
|
23
|
+
}
|
|
24
|
+
return { ...base, columnType };
|
|
22
25
|
}
|
|
23
26
|
function makeWriteHandler(path) {
|
|
24
27
|
// We're ignoring this line in coverage because it's not callable: we're adding a write handler
|
|
@@ -75,4 +78,4 @@ function makeUpdateHook(collection, columnName, paths) {
|
|
|
75
78
|
}
|
|
76
79
|
};
|
|
77
80
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbGF0dGVuLWNvbHVtbi9jdXN0b21pemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsOEJBZ0JDO0FBRUQsNENBUUM7QUFFRCx3Q0FNQztBQUVELHdDQW9EQztBQTdGRCx3RUFBZ0c7QUFDaEcsOERBQXFDO0FBRXJDLHVDQUErRTtBQUUvRSxTQUFnQixTQUFTLENBQUMsVUFBa0IsRUFBRSxJQUFZLEVBQUUsY0FBMEI7SUFDcEYsTUFBTSxVQUFVLEdBQUcsSUFBQSxrQkFBUSxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxJQUFJLENBRTFDLENBQUM7SUFDekIsSUFBSSxDQUFDLFVBQVU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLDJCQUEyQixDQUFDLENBQUM7SUFFdkYsTUFBTSxJQUFJLEdBQUc7UUFDWCxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDMUIsU0FBUyxFQUFFLENBQUMsT0FBcUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEsa0JBQVEsRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDMUUsQ0FBQztJQUVGLElBQUksK0JBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQW9CLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRUQsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLCtGQUErRjtJQUMvRiw2RkFBNkY7SUFFN0YsdUJBQXVCO0lB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
|
|
@@ -5,6 +5,7 @@ exports.includeStrToPath = includeStrToPath;
|
|
|
5
5
|
exports.deepUpdateInPlace = deepUpdateInPlace;
|
|
6
6
|
exports.getValue = getValue;
|
|
7
7
|
exports.unflattenPathsInPlace = unflattenPathsInPlace;
|
|
8
|
+
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
8
9
|
/**
|
|
9
10
|
* Given the name of a column, its type and the maximum allowed depth, compute the list of paths
|
|
10
11
|
* that can be flattened.
|
|
@@ -16,8 +17,10 @@ exports.unflattenPathsInPlace = unflattenPathsInPlace;
|
|
|
16
17
|
function listPaths(columnName, type, level) {
|
|
17
18
|
return level <= 0 || typeof type !== 'object'
|
|
18
19
|
? [columnName]
|
|
19
|
-
: Object.
|
|
20
|
-
.map(
|
|
20
|
+
: Object.entries(type)
|
|
21
|
+
.map(([key, subType]) => datasource_toolkit_1.TypeGetter.isEnumField(subType)
|
|
22
|
+
? [`${columnName}@@@${key}`]
|
|
23
|
+
: listPaths(`${columnName}@@@${key}`, subType, level - 1))
|
|
21
24
|
.flat();
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
@@ -86,4 +89,4 @@ function unflattenPathsInPlace(paths, patch) {
|
|
|
86
89
|
delete patch[key];
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbGF0dGVuLWNvbHVtbi9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsOEJBVUM7QUFRRCw0Q0FFQztBQVNELDhDQVlDO0FBU0QsNEJBTUM7QUFVRCxzREFrQkM7QUE5RkQsd0VBQTZEO0FBRTdEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixTQUFTLENBQUMsVUFBa0IsRUFBRSxJQUFnQixFQUFFLEtBQWE7SUFDM0UsT0FBTyxLQUFLLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDM0MsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2FBQ2pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsK0JBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FDNUQ7YUFDQSxJQUFJLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLE9BQWU7SUFDbEUsT0FBTyxHQUFHLFVBQVUsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQzlELENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFnQixFQUFFLE9BQW1CO0lBQ3JFLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQ1osS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFMUYsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxHQUFHLE1BQVIsSUFBSSxDQUFDLEdBQUcsSUFBTSxFQUFFLEVBQUM7WUFDakIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixRQUFRLENBQUMsTUFBZSxFQUFFLElBQVk7SUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSTtRQUM1QixDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFlLEVBQUUsS0FBaUI7SUFDdEUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUVoRSxLQUFLLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzVDLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZ0JBQWdCLENBQUMsSUFBSSxNQUFyQixnQkFBZ0IsQ0FBQyxJQUFJLElBQU0sRUFBRSxFQUFDO2dCQUM5QixnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7QUFDSCxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/plugin-flattener",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "A plugin that allows to flatten columns and relations in Forest Admin",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"test": "jest"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@forestadmin/datasource-customizer": "1.
|
|
27
|
+
"@forestadmin/datasource-customizer": "1.70.0",
|
|
28
28
|
"@types/object-hash": "^3.0.2"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@forestadmin/datasource-toolkit": "1.
|
|
31
|
+
"@forestadmin/datasource-toolkit": "1.54.0",
|
|
32
32
|
"object-hash": "^3.0.0"
|
|
33
33
|
}
|
|
34
34
|
}
|