@forestadmin/datasource-sequelize 1.3.7 → 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.
- package/dist/collection.js +15 -2
- package/dist/utils/serializer.d.ts +1 -0
- package/dist/utils/serializer.js +14 -6
- package/package.json +2 -2
package/dist/collection.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
7
|
+
const sequelize_1 = require("sequelize");
|
|
7
8
|
const aggregation_1 = __importDefault(require("./utils/aggregation"));
|
|
8
9
|
const error_handler_1 = __importDefault(require("./utils/error-handler"));
|
|
9
10
|
const model_to_collection_schema_converter_1 = __importDefault(require("./utils/model-to-collection-schema-converter"));
|
|
@@ -13,9 +14,21 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
13
14
|
constructor(name, datasource,
|
|
14
15
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
16
|
model, logger) {
|
|
16
|
-
super(name, datasource);
|
|
17
17
|
if (!model)
|
|
18
18
|
throw new Error('Invalid (null) model instance.');
|
|
19
|
+
super(name, datasource, {
|
|
20
|
+
sequelize: model.sequelize,
|
|
21
|
+
model,
|
|
22
|
+
rawQuery: async (sql, replacements) => {
|
|
23
|
+
const result = await model.sequelize.query(sql, {
|
|
24
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
25
|
+
plain: false,
|
|
26
|
+
raw: true,
|
|
27
|
+
replacements,
|
|
28
|
+
});
|
|
29
|
+
return result?.[0];
|
|
30
|
+
},
|
|
31
|
+
});
|
|
19
32
|
this.model = model;
|
|
20
33
|
this.col = this.model.sequelize.col;
|
|
21
34
|
this.fn = this.model.sequelize.fn;
|
|
@@ -102,4 +115,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
102
115
|
}
|
|
103
116
|
}
|
|
104
117
|
exports.default = SequelizeCollection;
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBYXlDO0FBQ3pDLHlDQU9tQjtBQUVuQixzRUFBbUQ7QUFDbkQsMEVBQWlEO0FBQ2pELHdIQUEwRTtBQUMxRSw4RUFBcUQ7QUFDckQsb0VBQTRDO0FBRTVDLE1BQXFCLG1CQUFvQixTQUFRLG1DQUFjO0lBUzdELFlBQ0UsSUFBWSxFQUNaLFVBQXNCO0lBQ3RCLDhEQUE4RDtJQUM5RCxLQUE2QixFQUM3QixNQUFlO1FBRWYsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFOUQsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLEtBQUs7WUFDTCxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQVcsRUFBRSxZQUFnQyxFQUFFLEVBQUU7Z0JBQ2hFLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUM5QyxJQUFJLEVBQUUsc0JBQVUsQ0FBQyxHQUFHO29CQUNwQixLQUFLLEVBQUUsS0FBSztvQkFDWixHQUFHLEVBQUUsSUFBSTtvQkFDVCxZQUFZO2lCQUNiLENBQUMsQ0FBQztnQkFFSCxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUNwQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUVsQyxJ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
|
|
@@ -2,5 +2,6 @@ import { RecordData } from '@forestadmin/datasource-toolkit';
|
|
|
2
2
|
export default class Serializer {
|
|
3
3
|
static serialize(record: RecordData): RecordData;
|
|
4
4
|
static serializeValue(value: unknown): unknown;
|
|
5
|
+
static serializeDate(date: Date): string;
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=serializer.d.ts.map
|
package/dist/utils/serializer.js
CHANGED
|
@@ -5,25 +5,33 @@ class Serializer {
|
|
|
5
5
|
Object.entries(record).forEach(([name, value]) => {
|
|
6
6
|
if (value instanceof Date)
|
|
7
7
|
record[name] = this.serializeValue(value);
|
|
8
|
-
if (Array.isArray(value))
|
|
8
|
+
else if (Array.isArray(value))
|
|
9
9
|
this.serializeValue(value); // the change is by references
|
|
10
|
-
if (value instanceof Object)
|
|
10
|
+
else if (value instanceof Object)
|
|
11
11
|
return this.serialize(record[name]);
|
|
12
12
|
});
|
|
13
13
|
return record;
|
|
14
14
|
}
|
|
15
15
|
static serializeValue(value) {
|
|
16
16
|
if (value instanceof Date)
|
|
17
|
-
return
|
|
17
|
+
return Serializer.serializeDate(value);
|
|
18
18
|
if (Array.isArray(value)) {
|
|
19
19
|
value.forEach((v, i) => {
|
|
20
20
|
// serialize by reference to improve performances by avoiding the copies
|
|
21
|
-
if (
|
|
22
|
-
value[i] =
|
|
21
|
+
if (v instanceof Date)
|
|
22
|
+
value[i] = Serializer.serializeDate(v);
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
return value;
|
|
26
26
|
}
|
|
27
|
+
static serializeDate(date) {
|
|
28
|
+
try {
|
|
29
|
+
return date.toISOString();
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
27
35
|
}
|
|
28
36
|
exports.default = Serializer;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBcUIsVUFBVTtJQUM3QixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWtCO1FBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxJQUFJLEtBQUssWUFBWSxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNoRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7aUJBQ3BGLElBQUksS0FBSyxZQUFZLE1BQU07Z0JBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBYztRQUNsQyxJQUFJLEtBQUssWUFBWSxJQUFJO1lBQUUsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQix3RUFBd0U7Z0JBQ3hFLElBQUksQ0FBQyxZQUFZLElBQUk7b0JBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBVTtRQUM3QixJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDM0I7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0NBQ0Y7QUEvQkQsNkJBK0JDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-sequelize",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"directory": "packages/datasource-sequelize"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@forestadmin/datasource-toolkit": "1.
|
|
15
|
+
"@forestadmin/datasource-toolkit": "1.9.0"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist/**/*.js",
|