@forestadmin/datasource-sequelize 1.0.0-beta.23 → 1.0.0-beta.24
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 +15 -0
- package/dist/collection.d.ts +1 -0
- package/dist/collection.js +12 -11
- package/dist/utils/query-converter.d.ts +11 -8
- package/dist/utils/query-converter.js +39 -33
- package/dist/utils/type-converter.js +2 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.24](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.23...@forestadmin/datasource-sequelize@1.0.0-beta.24) (2022-05-25)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **search:** add support for case sensitive/insensitive search ([#315](https://github.com/ForestAdmin/agent-nodejs/issues/315)) ([b6fe544](https://github.com/ForestAdmin/agent-nodejs/commit/b6fe544cf546724f62386f4df661982e62cf714e))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Dependencies
|
|
13
|
+
|
|
14
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.19
|
|
15
|
+
|
|
1
16
|
# @forestadmin/datasource-sequelize [1.0.0-beta.23](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.22...@forestadmin/datasource-sequelize@1.0.0-beta.23) (2022-05-24)
|
|
2
17
|
|
|
3
18
|
|
package/dist/collection.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { AggregateResult, Aggregation, BaseCollection, Caller, DataSource, Filte
|
|
|
3
3
|
export default class SequelizeCollection extends BaseCollection {
|
|
4
4
|
protected model: ModelDefined<any, any>;
|
|
5
5
|
private aggregationUtils;
|
|
6
|
+
private queryConverter;
|
|
6
7
|
constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>, logger?: Logger);
|
|
7
8
|
create(caller: Caller, data: RecordData[]): Promise<RecordData[]>;
|
|
8
9
|
list(caller: Caller, filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
|
package/dist/collection.js
CHANGED
|
@@ -17,6 +17,7 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
17
17
|
throw new Error('Invalid (null) model instance.');
|
|
18
18
|
this.model = model;
|
|
19
19
|
this.aggregationUtils = new aggregation_1.default(this.model);
|
|
20
|
+
this.queryConverter = new query_converter_1.default(this.model);
|
|
20
21
|
const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model, logger);
|
|
21
22
|
this.addFields(modelSchema.fields);
|
|
22
23
|
this.addSegments(modelSchema.segments);
|
|
@@ -26,20 +27,20 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
26
27
|
return records.map(record => record.get({ plain: true }));
|
|
27
28
|
}
|
|
28
29
|
async list(caller, filter, projection) {
|
|
29
|
-
let include =
|
|
30
|
+
let include = this.queryConverter.getIncludeWithAttributesFromProjection(projection);
|
|
30
31
|
if (filter.conditionTree) {
|
|
31
|
-
include = include.concat(
|
|
32
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
|
|
32
33
|
}
|
|
33
34
|
if (filter.sort) {
|
|
34
|
-
include = include.concat(
|
|
35
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.sort.projection));
|
|
35
36
|
}
|
|
36
37
|
const query = {
|
|
37
38
|
attributes: projection.columns,
|
|
38
|
-
where:
|
|
39
|
+
where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
|
|
39
40
|
include,
|
|
40
41
|
limit: filter.page?.limit,
|
|
41
42
|
offset: filter.page?.skip,
|
|
42
|
-
order:
|
|
43
|
+
order: this.queryConverter.getOrderFromSort(filter.sort),
|
|
43
44
|
subQuery: false,
|
|
44
45
|
};
|
|
45
46
|
const records = await this.model.findAll(query);
|
|
@@ -47,13 +48,13 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
47
48
|
}
|
|
48
49
|
async update(caller, filter, patch) {
|
|
49
50
|
await this.model.update(patch, {
|
|
50
|
-
where: await
|
|
51
|
+
where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
|
|
51
52
|
fields: Object.keys(patch),
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
async delete(caller, filter) {
|
|
55
56
|
await this.model.destroy({
|
|
56
|
-
where: await
|
|
57
|
+
where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
async aggregate(caller, filter, aggregation, limit) {
|
|
@@ -70,15 +71,15 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
70
71
|
this.aggregationUtils.aggregateFieldName,
|
|
71
72
|
];
|
|
72
73
|
const { groups, attributes: groupAttributes } = this.aggregationUtils.getGroupAndAttributesFromAggregation(aggregation.groups);
|
|
73
|
-
let include =
|
|
74
|
+
let include = this.queryConverter.getIncludeFromProjection(aggregation.projection);
|
|
74
75
|
if (filter.conditionTree) {
|
|
75
|
-
include = include.concat(
|
|
76
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
|
|
76
77
|
}
|
|
77
78
|
const order = this.aggregationUtils.getOrder(aggregationFunction);
|
|
78
79
|
const query = {
|
|
79
80
|
attributes: [...groupAttributes, aggregationAttribute],
|
|
80
81
|
group: groups,
|
|
81
|
-
where:
|
|
82
|
+
where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
|
|
82
83
|
include,
|
|
83
84
|
limit,
|
|
84
85
|
order: [order],
|
|
@@ -90,4 +91,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
exports.default = SequelizeCollection;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVd5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQU03RCxZQUNFLElBQVksRUFDWixVQUFzQjtJQUN0Qiw4REFBOEQ7SUFDOUQsS0FBNkIsRUFDN0IsTUFBZTtRQUVmLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUkscUJBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxJQUFrQjtRQUM3QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFD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
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { ConditionTree, Projection, Sort } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
import { IncludeOptions, ModelDefined, OrderItem, WhereOptions } from 'sequelize';
|
|
3
3
|
export default class QueryConverter {
|
|
4
|
-
private
|
|
5
|
-
private
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
private model;
|
|
5
|
+
private dialect;
|
|
6
|
+
constructor(model: ModelDefined<unknown, unknown>);
|
|
7
|
+
private asArray;
|
|
8
|
+
private makeWhereClause;
|
|
9
|
+
getWhereFromConditionTreeToByPassInclude(conditionTree?: ConditionTree): Promise<WhereOptions>;
|
|
10
|
+
getWhereFromConditionTree(conditionTree?: ConditionTree): WhereOptions;
|
|
11
|
+
private computeIncludeFromProjection;
|
|
12
|
+
getIncludeFromProjection(projection: Projection): IncludeOptions[];
|
|
13
|
+
getIncludeWithAttributesFromProjection(projection: Projection): IncludeOptions[];
|
|
14
|
+
getOrderFromSort(sort: Sort): OrderItem[];
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=query-converter.d.ts.map
|
|
@@ -3,12 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
4
4
|
const sequelize_1 = require("sequelize");
|
|
5
5
|
class QueryConverter {
|
|
6
|
-
|
|
6
|
+
constructor(model) {
|
|
7
|
+
this.model = model;
|
|
8
|
+
this.dialect = this.model.sequelize.getDialect();
|
|
9
|
+
}
|
|
10
|
+
asArray(value) {
|
|
7
11
|
if (!Array.isArray(value))
|
|
8
12
|
return [value];
|
|
9
13
|
return value;
|
|
10
14
|
}
|
|
11
|
-
|
|
15
|
+
makeWhereClause(field, operator,
|
|
12
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
17
|
value) {
|
|
14
18
|
if (operator === null)
|
|
@@ -16,12 +20,24 @@ class QueryConverter {
|
|
|
16
20
|
switch (operator) {
|
|
17
21
|
case 'Blank':
|
|
18
22
|
return {
|
|
19
|
-
[sequelize_1.Op.or]: [this.makeWhereClause('Missing'
|
|
23
|
+
[sequelize_1.Op.or]: [this.makeWhereClause(field, 'Missing'), { [sequelize_1.Op.eq]: '' }],
|
|
24
|
+
};
|
|
25
|
+
case 'Like':
|
|
26
|
+
if (this.dialect === 'sqlite')
|
|
27
|
+
return (0, sequelize_1.where)((0, sequelize_1.col)(field), 'GLOB', value.replace(/%/g, '*').replace(/_/g, '?'));
|
|
28
|
+
if (this.dialect === 'mysql' || this.dialect === 'mariadb')
|
|
29
|
+
return (0, sequelize_1.where)((0, sequelize_1.fn)('BINARY', (0, sequelize_1.col)(field)), 'LIKE', value);
|
|
30
|
+
return { [sequelize_1.Op.like]: value };
|
|
31
|
+
case 'ILike':
|
|
32
|
+
if (this.dialect === 'postgres')
|
|
33
|
+
return { [sequelize_1.Op.iLike]: value };
|
|
34
|
+
if (this.dialect === 'mysql' || this.dialect === 'mariadb' || this.dialect === 'sqlite')
|
|
35
|
+
return { [sequelize_1.Op.like]: value };
|
|
36
|
+
return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', value.toLocaleLowerCase());
|
|
37
|
+
case 'NotContains':
|
|
38
|
+
return {
|
|
39
|
+
[sequelize_1.Op.not]: this.makeWhereClause(field, 'Like', `%${value}%`),
|
|
20
40
|
};
|
|
21
|
-
case 'Contains':
|
|
22
|
-
return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}%`);
|
|
23
|
-
case 'EndsWith':
|
|
24
|
-
return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}`);
|
|
25
41
|
case 'Equal':
|
|
26
42
|
return { [sequelize_1.Op.eq]: value };
|
|
27
43
|
case 'GreaterThan':
|
|
@@ -34,16 +50,12 @@ class QueryConverter {
|
|
|
34
50
|
return { [sequelize_1.Op.lt]: value };
|
|
35
51
|
case 'Missing':
|
|
36
52
|
return { [sequelize_1.Op.is]: null };
|
|
37
|
-
case 'NotContains':
|
|
38
|
-
return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'NOT LIKE', `%${value.toLocaleLowerCase()}%`);
|
|
39
53
|
case 'NotEqual':
|
|
40
54
|
return { [sequelize_1.Op.ne]: value };
|
|
41
55
|
case 'NotIn':
|
|
42
56
|
return { [sequelize_1.Op.notIn]: this.asArray(value) };
|
|
43
57
|
case 'Present':
|
|
44
58
|
return { [sequelize_1.Op.ne]: null };
|
|
45
|
-
case 'StartsWith':
|
|
46
|
-
return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `${value.toLocaleLowerCase()}%`);
|
|
47
59
|
default:
|
|
48
60
|
throw new Error(`Unsupported operator: "${operator}".`);
|
|
49
61
|
}
|
|
@@ -52,28 +64,22 @@ class QueryConverter {
|
|
|
52
64
|
* Delete and update sequelize methods does not provide the include options.
|
|
53
65
|
* This method is developed to by pass this problem.
|
|
54
66
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const include = conditionTree
|
|
59
|
-
? QueryConverter.getIncludeFromProjection(conditionTree.projection)
|
|
60
|
-
: [];
|
|
61
|
-
const whereOptions = QueryConverter.getWhereFromConditionTree(model, conditionTree);
|
|
67
|
+
async getWhereFromConditionTreeToByPassInclude(conditionTree) {
|
|
68
|
+
const include = conditionTree ? this.getIncludeFromProjection(conditionTree.projection) : [];
|
|
69
|
+
const whereOptions = this.getWhereFromConditionTree(conditionTree);
|
|
62
70
|
if (include.length === 0) {
|
|
63
71
|
return whereOptions;
|
|
64
72
|
}
|
|
65
|
-
const keys = [...model.primaryKeyAttributes];
|
|
66
|
-
const records = await model.findAll({ attributes: keys, where: whereOptions, include });
|
|
73
|
+
const keys = [...this.model.primaryKeyAttributes];
|
|
74
|
+
const records = await this.model.findAll({ attributes: keys, where: whereOptions, include });
|
|
67
75
|
const conditions = records.map(record => {
|
|
68
76
|
const equals = keys.map(pk => new datasource_toolkit_1.ConditionTreeLeaf(pk, 'Equal', record.get(pk)));
|
|
69
77
|
return datasource_toolkit_1.ConditionTreeFactory.intersect(...equals);
|
|
70
78
|
});
|
|
71
79
|
const union = datasource_toolkit_1.ConditionTreeFactory.union(...conditions);
|
|
72
|
-
return
|
|
80
|
+
return this.getWhereFromConditionTree(union);
|
|
73
81
|
}
|
|
74
|
-
|
|
75
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
|
-
model, conditionTree) {
|
|
82
|
+
getWhereFromConditionTree(conditionTree) {
|
|
77
83
|
if (!conditionTree)
|
|
78
84
|
return {};
|
|
79
85
|
const sequelizeWhereClause = {};
|
|
@@ -86,7 +92,7 @@ class QueryConverter {
|
|
|
86
92
|
if (!Array.isArray(conditions)) {
|
|
87
93
|
throw new Error('Conditions must be an array.');
|
|
88
94
|
}
|
|
89
|
-
sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(
|
|
95
|
+
sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(condition));
|
|
90
96
|
}
|
|
91
97
|
else if (conditionTree.operator !== undefined) {
|
|
92
98
|
const { field, operator, value } = conditionTree;
|
|
@@ -96,21 +102,21 @@ class QueryConverter {
|
|
|
96
102
|
const paths = field.split(':');
|
|
97
103
|
const fieldName = paths.pop();
|
|
98
104
|
const safeFieldName = paths
|
|
99
|
-
.reduce((acc, path) => acc.associations[path].target, model)
|
|
105
|
+
.reduce((acc, path) => acc.associations[path].target, this.model)
|
|
100
106
|
.getAttributes()[fieldName].field;
|
|
101
107
|
safeField = `${paths.join('.')}.${safeFieldName}`;
|
|
102
108
|
}
|
|
103
109
|
else {
|
|
104
|
-
safeField = model.getAttributes()[field].field;
|
|
110
|
+
safeField = this.model.getAttributes()[field].field;
|
|
105
111
|
}
|
|
106
|
-
sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(
|
|
112
|
+
sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(safeField, operator, value);
|
|
107
113
|
}
|
|
108
114
|
else {
|
|
109
115
|
throw new Error('Invalid ConditionTree.');
|
|
110
116
|
}
|
|
111
117
|
return sequelizeWhereClause;
|
|
112
118
|
}
|
|
113
|
-
|
|
119
|
+
computeIncludeFromProjection(projection, withAttributes = true) {
|
|
114
120
|
return Object.entries(projection.relations).map(([relationName, relationProjection]) => {
|
|
115
121
|
return {
|
|
116
122
|
association: relationName,
|
|
@@ -119,13 +125,13 @@ class QueryConverter {
|
|
|
119
125
|
};
|
|
120
126
|
});
|
|
121
127
|
}
|
|
122
|
-
|
|
128
|
+
getIncludeFromProjection(projection) {
|
|
123
129
|
return this.computeIncludeFromProjection(projection, false);
|
|
124
130
|
}
|
|
125
|
-
|
|
131
|
+
getIncludeWithAttributesFromProjection(projection) {
|
|
126
132
|
return this.computeIncludeFromProjection(projection);
|
|
127
133
|
}
|
|
128
|
-
|
|
134
|
+
getOrderFromSort(sort) {
|
|
129
135
|
return (sort ?? []).map(({ field, ascending }) => {
|
|
130
136
|
const path = field.split(':');
|
|
131
137
|
return [...path, ascending ? 'ASC' : 'DESC'];
|
|
@@ -133,4 +139,4 @@ class QueryConverter {
|
|
|
133
139
|
}
|
|
134
140
|
}
|
|
135
141
|
exports.default = QueryConverter;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdFQVF5QztBQUN6Qyx5Q0FZbUI7QUFHbkIsTUFBcUIsY0FBYztJQUlqQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQ3JCLEtBQWEsRUFDYixRQUFrQjtJQUNsQiw4REFBOEQ7SUFDOUQsS0FBVztRQUVYLElBQUksUUFBUSxLQUFLLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkUsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxPQUFPO2dCQUNWLE9BQU87b0JBQ0wsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQWUsRUFBRSxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUNqRixDQUFDO1lBRUosS0FBSyxNQUFNO2dCQUNULElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUMzQixPQUFPLElBQUEsaUJBQUssRUFBQyxJQUFBLGVBQUcsRUFBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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
|
|
@@ -82,15 +82,13 @@ class TypeConverter {
|
|
|
82
82
|
case 'String':
|
|
83
83
|
return new Set([
|
|
84
84
|
...TypeConverter.baseOperators,
|
|
85
|
-
'Contains',
|
|
86
|
-
'EndsWith',
|
|
87
85
|
'In',
|
|
88
86
|
'Like',
|
|
87
|
+
'ILike',
|
|
89
88
|
'LongerThan',
|
|
90
89
|
'NotContains',
|
|
91
90
|
'NotIn',
|
|
92
91
|
'ShorterThan',
|
|
93
|
-
'StartsWith',
|
|
94
92
|
]);
|
|
95
93
|
case 'Date':
|
|
96
94
|
case 'Dateonly':
|
|
@@ -125,4 +123,4 @@ TypeConverter.baseOperators = [
|
|
|
125
123
|
'NotEqual',
|
|
126
124
|
'Present',
|
|
127
125
|
];
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBNEY7QUFJNUYsTUFBcUIsYUFBYTtJQWtCaEMseURBQXlEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBMEI7UUFDckQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUU1RSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLHlCQUF5QixDQUFDLFFBQWtCO1FBQ3pELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxRQUFRLFlBQVkscUJBQVMsQ0FBQyxPQUFPO2dCQUN4QyxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLElBQUksQ0FBQztZQUN4QyxLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLEdBQUc7Z0JBQ3BDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsUUFBUTtnQkFDekMsT0FBTyxVQUFVLENBQUM7WUFDcEIsS0FBSyxRQUFRLFlBQVkscUJBQVMsQ0FBQyxJQUFJO2dCQUNyQyxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLElBQUksQ0FBQztZQUN4QyxLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLEtBQUs7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsTUFBTSxDQUFDO1lBQzFDLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsT0FBTyxDQUFDO1lBQzNDLEtBQUssUUFBUSxZ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-sequelize",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.24",
|
|
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.0.0-beta.
|
|
15
|
+
"@forestadmin/datasource-toolkit": "1.0.0-beta.19"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist/**/*.js",
|