@forestadmin/datasource-sequelize 1.0.0-beta.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.
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ class QueryConverter {
5
+ static asArray(value) {
6
+ if (!Array.isArray(value))
7
+ return [value];
8
+ return value;
9
+ }
10
+ static makeWhereClause(operator, field,
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ value) {
13
+ if (operator === null)
14
+ throw new Error('Invalid (null) operator.');
15
+ switch (operator) {
16
+ case 'Blank':
17
+ return {
18
+ [sequelize_1.Op.or]: [this.makeWhereClause('Missing', field), { [sequelize_1.Op.eq]: '' }],
19
+ };
20
+ case 'Contains':
21
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}%`);
22
+ case 'EndsWith':
23
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}`);
24
+ case 'Equal':
25
+ return { [sequelize_1.Op.eq]: value };
26
+ case 'GreaterThan':
27
+ return { [sequelize_1.Op.gt]: value };
28
+ case 'In':
29
+ return { [sequelize_1.Op.in]: this.asArray(value) };
30
+ case 'IncludesAll':
31
+ return { [sequelize_1.Op.contains]: this.asArray(value) };
32
+ case 'LessThan':
33
+ return { [sequelize_1.Op.lt]: value };
34
+ case 'Missing':
35
+ return { [sequelize_1.Op.is]: null };
36
+ case 'NotContains':
37
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'NOT LIKE', `%${value.toLocaleLowerCase()}%`);
38
+ case 'NotEqual':
39
+ return { [sequelize_1.Op.ne]: value };
40
+ case 'NotIn':
41
+ return { [sequelize_1.Op.notIn]: this.asArray(value) };
42
+ case 'Present':
43
+ return { [sequelize_1.Op.ne]: null };
44
+ case 'StartsWith':
45
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `${value.toLocaleLowerCase()}%`);
46
+ default:
47
+ throw new Error(`Unsupported operator: "${operator}".`);
48
+ }
49
+ }
50
+ static getWhereFromConditionTree(
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ model, conditionTree) {
53
+ if (!conditionTree)
54
+ return {};
55
+ const sequelizeWhereClause = {};
56
+ if (conditionTree.aggregator !== undefined) {
57
+ const { aggregator, conditions } = conditionTree;
58
+ if (aggregator === null) {
59
+ throw new Error('Invalid (null) aggregator.');
60
+ }
61
+ const sequelizeOperator = aggregator === 'And' ? sequelize_1.Op.and : sequelize_1.Op.or;
62
+ if (!Array.isArray(conditions)) {
63
+ throw new Error('Conditions must be an array.');
64
+ }
65
+ sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(model, condition));
66
+ }
67
+ else if (conditionTree.operator !== undefined) {
68
+ const { field, operator, value } = conditionTree;
69
+ const isRelation = field.includes(':');
70
+ let safeField;
71
+ if (isRelation) {
72
+ const paths = field.split(':');
73
+ const fieldName = paths.pop();
74
+ const safeFieldName = paths
75
+ .reduce((acc, path) => acc.associations[path].target, model)
76
+ .getAttributes()[fieldName].field;
77
+ safeField = `${paths.join('.')}.${safeFieldName}`;
78
+ }
79
+ else {
80
+ safeField = model.getAttributes()[field].field;
81
+ }
82
+ sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(operator, safeField, value);
83
+ }
84
+ else {
85
+ throw new Error('Invalid ConditionTree.');
86
+ }
87
+ return sequelizeWhereClause;
88
+ }
89
+ static computeIncludeFromProjection(projection, withAttributes = true) {
90
+ return Object.entries(projection.relations).map(([relationName, relationProjection]) => {
91
+ return {
92
+ association: relationName,
93
+ attributes: withAttributes ? relationProjection.columns : [],
94
+ include: this.computeIncludeFromProjection(relationProjection, withAttributes),
95
+ };
96
+ });
97
+ }
98
+ static getIncludeFromProjection(projection) {
99
+ return this.computeIncludeFromProjection(projection, false);
100
+ }
101
+ static getIncludeWithAttributesFromProjection(projection) {
102
+ return this.computeIncludeFromProjection(projection);
103
+ }
104
+ static getOrderFromSort(sort) {
105
+ return (sort ?? []).map(({ field, ascending }) => {
106
+ const path = field.split(':');
107
+ return [...path, ascending ? 'ASC' : 'DESC'];
108
+ });
109
+ }
110
+ }
111
+ exports.default = QueryConverter;
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLHlDQVdtQjtBQUduQixNQUFxQixjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FDNUIsUUFBa0IsRUFDbEIsS0FBYTtJQUNiLDhEQUE4RDtJQUM5RCxLQUFXO1FBRVgsSUFBSSxRQUFRLEtBQUssSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVuRSxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLE9BQU87Z0JBQ1YsT0FBTztvQkFDTCxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBZSxFQUFFLEVBQUUsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2pGLENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFBLGlCQUFLLEVBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLElBQUEsZUFBRyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xGLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUEsaUJBQUssRUFBQyxJQUFBLGNBQUUsRUFBQyxPQUFPLEVBQUUsSUFBQSxlQUFHLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakYsS0FBSyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1QixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1QixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEQsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzNCLEtBQUssYUFBYTtnQkFDaEIsT0FBTyxJQUFBLGlCQUFLLEVBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLElBQUEsZUFBRyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3RGLEtBQUssVUFBVTtnQkFDYixPQUFPLEVBQUUsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsS0FBSyxTQUFTO2dCQUNaLE9BQU8sRUFBRSxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMzQixLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxJQUFBLGlCQUFLLEVBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLElBQUEsZUFBRyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2pGO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsSUFBSSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLHlCQUF5QjtJQUM5Qiw4REFBOEQ7SUFDOUQsS0FBNkIsRUFDN0IsYUFBNkI7UUFFN0IsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU5QixNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVoQyxJQUFLLGFBQXFDLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNuRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLGFBQW9DLENBQUM7WUFFeEUsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7YUFDL0M7WUFFRCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUM7WUFFaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQzthQUNqRDtZQUVELG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNuRSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUNqRCxDQUFDO1NBQ0g7YUFBTSxJQUFLLGFBQW1DLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUN0RSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFrQyxDQUFDO1lBQ3RFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFdkMsSUFBSSxTQUFpQixDQUFDO1lBRXRCLElBQUksVUFBVSxFQUFFO2dCQUNkLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxhQUFhLEdBQUcsS0FBSztxQkFDeEIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO3FCQUMzRCxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BDLFNBQVMsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7YUFDbkQ7aUJBQU07Z0JBQ0wsU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDaEQ7WUFFRCxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ3BGLFFBQVEsRUFDUixTQUFTLEVBQ1QsS0FBSyxDQUNOLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRU8sTUFBTSxDQUFDLDRCQUE0QixDQUN6QyxVQUFzQixFQUN0QixjQUFjLEdBQUcsSUFBSTtRQUVyQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRTtZQUNyRixPQUFPO2dCQUNMLFdBQVcsRUFBRSxZQUFZO2dCQUN6QixVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVELE9BQU8sRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxDQUFDO2FBQy9FLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBc0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsc0NBQXNDLENBQUMsVUFBc0I7UUFDbEUsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQWEsRUFBRTtZQUMxRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBYSxDQUFDO1lBRTFDLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFySUQsaUNBcUlDIn0=
@@ -0,0 +1,11 @@
1
+ import { AbstractDataTypeConstructor, ArrayDataType } from 'sequelize';
2
+ import { ColumnType, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit';
3
+ export default class TypeConverter {
4
+ private static readonly columnTypeToDataType;
5
+ static fromColumnType(columnType: PrimitiveTypes): AbstractDataTypeConstructor;
6
+ private static readonly dataTypeToColumnType;
7
+ static fromDataType(dataType: AbstractDataTypeConstructor | ArrayDataType<AbstractDataTypeConstructor>): ColumnType;
8
+ private static readonly baseOperators;
9
+ static operatorsForDataType(dataType: AbstractDataTypeConstructor | ArrayDataType<AbstractDataTypeConstructor>): Set<Operator>;
10
+ }
11
+ //# sourceMappingURL=type-converter.d.ts.map
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ class TypeConverter {
5
+ // TODO: Handle all ColumnTypes, not only PrimitiveTypes?
6
+ static fromColumnType(columnType) {
7
+ const dataType = TypeConverter.columnTypeToDataType[columnType];
8
+ if (!dataType)
9
+ throw new Error(`Unsupported column type: "${columnType}".`);
10
+ return dataType;
11
+ }
12
+ static fromDataType(dataType) {
13
+ const dataTypeName = dataType.key;
14
+ if (dataTypeName === 'ARRAY') {
15
+ const arrayDataType = dataType;
16
+ return [this.fromDataType(arrayDataType.options.type)];
17
+ }
18
+ const columnType = TypeConverter.dataTypeToColumnType[dataTypeName];
19
+ if (!columnType)
20
+ throw new Error(`Unsupported data type: "${dataType}".`);
21
+ return columnType;
22
+ }
23
+ static operatorsForDataType(dataType) {
24
+ const dataTypeName = dataType?.key;
25
+ if (dataTypeName === 'ARRAY') {
26
+ return new Set([...this.baseOperators, 'In', 'IncludesAll', 'NotIn']);
27
+ }
28
+ switch (dataTypeName) {
29
+ case 'BOOLEAN':
30
+ return new Set([...this.baseOperators]);
31
+ case 'UUID':
32
+ case 'UUIDV1':
33
+ case 'UUIDV4':
34
+ return new Set([
35
+ ...this.baseOperators,
36
+ 'Contains',
37
+ 'EndsWith',
38
+ 'Like',
39
+ 'StartsWith',
40
+ ]);
41
+ case 'BIGINT':
42
+ case 'DECIMAL':
43
+ case 'DOUBLE':
44
+ case 'FLOAT':
45
+ case 'INTEGER':
46
+ case 'MEDIUMINT':
47
+ case 'NUMBER':
48
+ case 'REAL':
49
+ case 'SMALLINT':
50
+ case 'TINYINT':
51
+ return new Set([...this.baseOperators, 'GreaterThan', 'In', 'LessThan', 'NotIn']);
52
+ case 'CHAR':
53
+ case 'CITEXT':
54
+ case 'STRING':
55
+ case 'TEXT':
56
+ return new Set([
57
+ ...this.baseOperators,
58
+ 'Contains',
59
+ 'EndsWith',
60
+ 'In',
61
+ 'Like',
62
+ 'LongerThan',
63
+ 'NotContains',
64
+ 'NotIn',
65
+ 'ShorterThan',
66
+ 'StartsWith',
67
+ ]);
68
+ case 'DATE':
69
+ case 'DATEONLY':
70
+ case 'NOW':
71
+ case 'TIME':
72
+ return new Set([...this.baseOperators, 'GreaterThan', 'LessThan']);
73
+ case 'ENUM':
74
+ return new Set([...this.baseOperators, 'In', 'NotIn']);
75
+ case 'JSON':
76
+ case 'JSONB':
77
+ return new Set([...this.baseOperators]);
78
+ // Unsupported types.
79
+ case 'BLOB':
80
+ case 'CIDR':
81
+ case 'GEOGRAPHY':
82
+ case 'GEOMETRY':
83
+ case 'HSTORE':
84
+ case 'INET':
85
+ case 'MACADDR':
86
+ case 'RANGE':
87
+ case 'TSVECTOR':
88
+ case 'VIRTUAL':
89
+ default:
90
+ return new Set();
91
+ }
92
+ }
93
+ }
94
+ exports.default = TypeConverter;
95
+ // TODO: Allow to differentiate NUMBER and INTEGER.
96
+ TypeConverter.columnTypeToDataType = {
97
+ Boolean: sequelize_1.DataTypes.BOOLEAN,
98
+ Date: sequelize_1.DataTypes.DATE,
99
+ Dateonly: sequelize_1.DataTypes.DATEONLY,
100
+ Enum: sequelize_1.DataTypes.ENUM,
101
+ Json: sequelize_1.DataTypes.JSON,
102
+ Number: sequelize_1.DataTypes.NUMBER,
103
+ Point: null,
104
+ String: sequelize_1.DataTypes.STRING,
105
+ Timeonly: sequelize_1.DataTypes.TIME,
106
+ Uuid: sequelize_1.DataTypes.UUID,
107
+ };
108
+ TypeConverter.dataTypeToColumnType = {
109
+ BIGINT: 'Number',
110
+ BLOB: null,
111
+ BOOLEAN: 'Boolean',
112
+ CHAR: 'String',
113
+ CIDR: null,
114
+ CITEXT: 'String',
115
+ DATE: 'Date',
116
+ DATEONLY: 'Dateonly',
117
+ DECIMAL: 'Number',
118
+ DOUBLE: 'Number',
119
+ ENUM: 'Enum',
120
+ FLOAT: 'Number',
121
+ GEOGRAPHY: null,
122
+ GEOMETRY: null,
123
+ HSTORE: null,
124
+ INET: null,
125
+ INTEGER: 'Number',
126
+ JSON: 'Json',
127
+ JSONB: 'Json',
128
+ JSONTYPE: null,
129
+ MACADDR: null,
130
+ MEDIUMINT: 'Number',
131
+ NOW: 'Date',
132
+ NUMBER: 'Number',
133
+ RANGE: null,
134
+ REAL: 'Number',
135
+ SMALLINT: 'Number',
136
+ STRING: 'String',
137
+ TEXT: 'String',
138
+ TIME: 'Timeonly',
139
+ TINYINT: 'Number',
140
+ TSVECTOR: null,
141
+ UUID: 'Uuid',
142
+ UUIDV1: 'Uuid',
143
+ UUIDV4: 'Uuid',
144
+ VIRTUAL: null,
145
+ };
146
+ TypeConverter.baseOperators = [
147
+ 'Blank',
148
+ 'Equal',
149
+ 'Missing',
150
+ 'NotEqual',
151
+ 'Present',
152
+ ];
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBb0c7QUFJcEcsTUFBcUIsYUFBYTtJQWtCaEMseURBQXlEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBMEI7UUFDckQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUU1RSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBeUNNLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLFFBQWtGO1FBRWxGLE1BQU0sWUFBWSxHQUFJLFFBQTZCLENBQUMsR0FBRyxDQUFDO1FBRXhELElBQUksWUFBWSxLQUFLLE9BQU8sRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxRQUFzRCxDQUFDO1lBRTdFLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN4RDtRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFFMUUsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQVVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsUUFBa0Y7UUFFbEYsTUFBTSxZQUFZLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUVuQyxJQUFJLFlBQVksS0FBSyxPQUFPLEVBQUU7WUFDNUIsT0FBTyxJQUFJLEdBQUcsQ0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFD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
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@forestadmin/datasource-sequelize",
3
+ "version": "1.0.0-beta.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-sequelize"
13
+ },
14
+ "dependencies": {
15
+ "@forestadmin/datasource-toolkit": "^1.0.0-beta.1"
16
+ },
17
+ "files": [
18
+ "dist/**/*.js",
19
+ "dist/**/*.d.ts"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "build:watch": "tsc --watch",
24
+ "clean": "rm -rf coverage dist",
25
+ "lint": "eslint src test",
26
+ "test": "jest"
27
+ },
28
+ "devDependencies": {
29
+ "fishery": "^2.1.0",
30
+ "sequelize": "6.18.0",
31
+ "sqlite3": "^5.0.2"
32
+ },
33
+ "peerDependencies": {
34
+ "sequelize": "6.18.0"
35
+ }
36
+ }