@forestadmin/datasource-sequelize 1.0.0-beta.3 → 1.0.0-beta.30
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 +334 -0
- package/dist/collection.d.ts +8 -7
- package/dist/collection.js +23 -17
- package/dist/datasource.d.ts +3 -3
- package/dist/datasource.js +5 -5
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -4
- package/dist/utils/aggregation.d.ts +3 -3
- package/dist/utils/aggregation.js +2 -2
- package/dist/utils/model-to-collection-schema-converter.d.ts +2 -2
- package/dist/utils/model-to-collection-schema-converter.js +22 -10
- package/dist/utils/query-converter.d.ts +11 -7
- package/dist/utils/query-converter.js +53 -23
- package/dist/utils/type-converter.d.ts +4 -4
- package/dist/utils/type-converter.js +70 -97
- package/package.json +2 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.30](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.29...@forestadmin/datasource-sequelize@1.0.0-beta.30) (2022-06-15)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Dependencies
|
|
8
|
+
|
|
9
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.25
|
|
10
|
+
|
|
11
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.29](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.28...@forestadmin/datasource-sequelize@1.0.0-beta.29) (2022-06-14)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Dependencies
|
|
18
|
+
|
|
19
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.24
|
|
20
|
+
|
|
21
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.28](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.27...@forestadmin/datasource-sequelize@1.0.0-beta.28) (2022-06-14)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Dependencies
|
|
28
|
+
|
|
29
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.23
|
|
30
|
+
|
|
31
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.27](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.26...@forestadmin/datasource-sequelize@1.0.0-beta.27) (2022-06-09)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Dependencies
|
|
38
|
+
|
|
39
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.22
|
|
40
|
+
|
|
41
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.26](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.25...@forestadmin/datasource-sequelize@1.0.0-beta.26) (2022-06-01)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Dependencies
|
|
48
|
+
|
|
49
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.21
|
|
50
|
+
|
|
51
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.25](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.24...@forestadmin/datasource-sequelize@1.0.0-beta.25) (2022-05-31)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Features
|
|
55
|
+
|
|
56
|
+
* make count an optional feature ([#327](https://github.com/ForestAdmin/agent-nodejs/issues/327)) ([b6f688c](https://github.com/ForestAdmin/agent-nodejs/commit/b6f688ca5f84aa29740761ff848c4beca5ee61d6))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
### Dependencies
|
|
63
|
+
|
|
64
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.20
|
|
65
|
+
|
|
66
|
+
# @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)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### Features
|
|
70
|
+
|
|
71
|
+
* **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))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### Dependencies
|
|
78
|
+
|
|
79
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.19
|
|
80
|
+
|
|
81
|
+
# @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)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
### Dependencies
|
|
88
|
+
|
|
89
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.18
|
|
90
|
+
|
|
91
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.22](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.21...@forestadmin/datasource-sequelize@1.0.0-beta.22) (2022-05-24)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
### Dependencies
|
|
98
|
+
|
|
99
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.17
|
|
100
|
+
|
|
101
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.21](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.20...@forestadmin/datasource-sequelize@1.0.0-beta.21) (2022-05-16)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### Features
|
|
105
|
+
|
|
106
|
+
* autocomplete on field names ([#263](https://github.com/ForestAdmin/agent-nodejs/issues/263)) ([e2025d5](https://github.com/ForestAdmin/agent-nodejs/commit/e2025d57d930edf6d326bd0c6d7fffcd4aad728d))
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### Dependencies
|
|
113
|
+
|
|
114
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.16
|
|
115
|
+
|
|
116
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.20](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.19...@forestadmin/datasource-sequelize@1.0.0-beta.20) (2022-05-12)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Dependencies
|
|
123
|
+
|
|
124
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.15
|
|
125
|
+
|
|
126
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.19](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.18...@forestadmin/datasource-sequelize@1.0.0-beta.19) (2022-05-09)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
### Dependencies
|
|
133
|
+
|
|
134
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.14
|
|
135
|
+
|
|
136
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.18](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.17...@forestadmin/datasource-sequelize@1.0.0-beta.18) (2022-05-09)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### Dependencies
|
|
143
|
+
|
|
144
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.13
|
|
145
|
+
|
|
146
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.17](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.16...@forestadmin/datasource-sequelize@1.0.0-beta.17) (2022-05-09)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### Bug Fixes
|
|
150
|
+
|
|
151
|
+
* datasource naming consistency ([#292](https://github.com/ForestAdmin/agent-nodejs/issues/292)) ([ff50a1f](https://github.com/ForestAdmin/agent-nodejs/commit/ff50a1f02aa65b3d99824c2bc9fb19d729a4e465))
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
### Dependencies
|
|
158
|
+
|
|
159
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.12
|
|
160
|
+
|
|
161
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.16](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.15...@forestadmin/datasource-sequelize@1.0.0-beta.16) (2022-05-04)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
### Dependencies
|
|
168
|
+
|
|
169
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.11
|
|
170
|
+
|
|
171
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.15](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.14...@forestadmin/datasource-sequelize@1.0.0-beta.15) (2022-04-29)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
### Dependencies
|
|
178
|
+
|
|
179
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.10
|
|
180
|
+
|
|
181
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.14](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.13...@forestadmin/datasource-sequelize@1.0.0-beta.14) (2022-04-29)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
### Dependencies
|
|
188
|
+
|
|
189
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.9
|
|
190
|
+
|
|
191
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.13](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.12...@forestadmin/datasource-sequelize@1.0.0-beta.13) (2022-04-28)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
### Dependencies
|
|
198
|
+
|
|
199
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.8
|
|
200
|
+
|
|
201
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.12](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.11...@forestadmin/datasource-sequelize@1.0.0-beta.12) (2022-04-26)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
### Bug Fixes
|
|
205
|
+
|
|
206
|
+
* **datasource sequelize:** build a correct where clause when there is relation on delete and update ([#242](https://github.com/ForestAdmin/agent-nodejs/issues/242)) ([75061d4](https://github.com/ForestAdmin/agent-nodejs/commit/75061d447878cd8f32f1fd5bcc245a2791ba0b0a))
|
|
207
|
+
|
|
208
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.11](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.10...@forestadmin/datasource-sequelize@1.0.0-beta.11) (2022-04-26)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
### Features
|
|
212
|
+
|
|
213
|
+
* give access to logged in user to customization context ([#253](https://github.com/ForestAdmin/agent-nodejs/issues/253)) ([be97812](https://github.com/ForestAdmin/agent-nodejs/commit/be978121e47ab06c7a50cc6dec0cdb9284ea9d96))
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
### Dependencies
|
|
220
|
+
|
|
221
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.7
|
|
222
|
+
|
|
223
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.10](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.9...@forestadmin/datasource-sequelize@1.0.0-beta.10) (2022-04-25)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### Bug Fixes
|
|
227
|
+
|
|
228
|
+
* **datasource sequelize:** all field are sortable ([#262](https://github.com/ForestAdmin/agent-nodejs/issues/262)) ([8d85346](https://github.com/ForestAdmin/agent-nodejs/commit/8d8534662bc058466901095a0c0d82e06d2f13b0))
|
|
229
|
+
|
|
230
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.9](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.8...@forestadmin/datasource-sequelize@1.0.0-beta.9) (2022-04-25)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
### Bug Fixes
|
|
234
|
+
|
|
235
|
+
* import packages from js ([#260](https://github.com/ForestAdmin/agent-nodejs/issues/260)) ([de00886](https://github.com/ForestAdmin/agent-nodejs/commit/de008862971ea5d3559e5a4c3136b0dd2161d760))
|
|
236
|
+
|
|
237
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.8](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.7...@forestadmin/datasource-sequelize@1.0.0-beta.8) (2022-04-21)
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
### Features
|
|
241
|
+
|
|
242
|
+
* harmonize datasource creation and pass logger to it ([#257](https://github.com/ForestAdmin/agent-nodejs/issues/257)) ([82cb4ea](https://github.com/ForestAdmin/agent-nodejs/commit/82cb4ea37ac0a9fe83423d917226dfd8fad7d0a6))
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
### Dependencies
|
|
249
|
+
|
|
250
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.6
|
|
251
|
+
|
|
252
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.7](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.6...@forestadmin/datasource-sequelize@1.0.0-beta.7) (2022-04-20)
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
### Bug Fixes
|
|
256
|
+
|
|
257
|
+
* **datasource sequelize:** add include from sort relation for list ([#243](https://github.com/ForestAdmin/agent-nodejs/issues/243)) ([5a81bc0](https://github.com/ForestAdmin/agent-nodejs/commit/5a81bc04e969442dd38d251be0a48c7bce2dc43e))
|
|
258
|
+
|
|
259
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.6](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.5...@forestadmin/datasource-sequelize@1.0.0-beta.6) (2022-04-19)
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
### Dependencies
|
|
266
|
+
|
|
267
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.5
|
|
268
|
+
|
|
269
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.5](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.4...@forestadmin/datasource-sequelize@1.0.0-beta.5) (2022-04-19)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
### Bug Fixes
|
|
273
|
+
|
|
274
|
+
* **datasource sequelize:** type converter compute correctly type from sequelize DataTypes ([#246](https://github.com/ForestAdmin/agent-nodejs/issues/246)) ([92fc238](https://github.com/ForestAdmin/agent-nodejs/commit/92fc23841c25c502f44fd90c5e68f864ecc6727b))
|
|
275
|
+
|
|
276
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.4](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.3...@forestadmin/datasource-sequelize@1.0.0-beta.4) (2022-04-15)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
### Dependencies
|
|
283
|
+
|
|
284
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.4
|
|
285
|
+
|
|
286
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.3](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.2...@forestadmin/datasource-sequelize@1.0.0-beta.3) (2022-04-15)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
### Bug Fixes
|
|
290
|
+
|
|
291
|
+
* correct versions in package.json of all datasources ([540d395](https://github.com/ForestAdmin/agent-nodejs/commit/540d395bc5e42bdd7edb3dce5806ade8554f3d7a))
|
|
292
|
+
|
|
293
|
+
# @forestadmin/datasource-sequelize [1.0.0-beta.2](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.1...@forestadmin/datasource-sequelize@1.0.0-beta.2) (2022-04-15)
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
### Dependencies
|
|
300
|
+
|
|
301
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.3
|
|
302
|
+
|
|
303
|
+
# @forestadmin/datasource-sequelize 1.0.0-beta.1 (2022-04-15)
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
### Bug Fixes
|
|
307
|
+
|
|
308
|
+
* **datasource sequelize:** compute where correctly ([#239](https://github.com/ForestAdmin/agent-nodejs/issues/239)) ([ee770ba](https://github.com/ForestAdmin/agent-nodejs/commit/ee770bafe8b6a8ebe542bac3e664a47b4d0c7151))
|
|
309
|
+
* **datasource sequelize:** enable date filter ([#166](https://github.com/ForestAdmin/agent-nodejs/issues/166)) ([5f0e349](https://github.com/ForestAdmin/agent-nodejs/commit/5f0e3494dbb254ef5351e0c85061ce196d8c2f9b))
|
|
310
|
+
* **datasource sequelize:** search like operators is now insensitive ([#175](https://github.com/ForestAdmin/agent-nodejs/issues/175)) ([4660c13](https://github.com/ForestAdmin/agent-nodejs/commit/4660c131e398a151fc2a98c8f7e4e817fd427e63))
|
|
311
|
+
* **datasource,sequelize:** only keep grouped field in order clause for aggregate ([#102](https://github.com/ForestAdmin/agent-nodejs/issues/102)) ([6f0d1dd](https://github.com/ForestAdmin/agent-nodejs/commit/6f0d1dd4df4dc94739c40271afb55aa6928eca1b))
|
|
312
|
+
* **datasource,sequelize:** properly handle array operators ([#100](https://github.com/ForestAdmin/agent-nodejs/issues/100)) ([dd061df](https://github.com/ForestAdmin/agent-nodejs/commit/dd061df90bb35b130cd6e98f8de8e321f1a53964))
|
|
313
|
+
* **datasource:** properly set column FilterOperator values ([#117](https://github.com/ForestAdmin/agent-nodejs/issues/117)) ([92174a5](https://github.com/ForestAdmin/agent-nodejs/commit/92174a5f9016e8e54bed854979b0d7c408f11cae))
|
|
314
|
+
* enable npm, git and github distribution ([bd91825](https://github.com/ForestAdmin/agent-nodejs/commit/bd91825f4d185874a259da28b0f7a6c7f557196d))
|
|
315
|
+
* error when count or list does not match any records ([#223](https://github.com/ForestAdmin/agent-nodejs/issues/223)) ([e51dad6](https://github.com/ForestAdmin/agent-nodejs/commit/e51dad6f9fce502405fbd95300f27f7d25945de5))
|
|
316
|
+
* fix semantic release ([3a2fa73](https://github.com/ForestAdmin/agent-nodejs/commit/3a2fa738af84a50b9563db6ac039c922b77f55cc))
|
|
317
|
+
* handle json type and default value ([#237](https://github.com/ForestAdmin/agent-nodejs/issues/237)) ([1e20364](https://github.com/ForestAdmin/agent-nodejs/commit/1e2036455ce9a5376bbe1102d9bbb05f034962f5))
|
|
318
|
+
* select-all when delete-all action is triggered ([#220](https://github.com/ForestAdmin/agent-nodejs/issues/220)) ([23ef123](https://github.com/ForestAdmin/agent-nodejs/commit/23ef1232d56bc250a3a18257de8ed74bdbdf920b))
|
|
319
|
+
* tests were not compiled ([#7](https://github.com/ForestAdmin/agent-nodejs/issues/7)) ([9f2525d](https://github.com/ForestAdmin/agent-nodejs/commit/9f2525dfe6753471b13296899038df27ca1f28be))
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
### Features
|
|
323
|
+
|
|
324
|
+
* add action routes and decorator ([#149](https://github.com/ForestAdmin/agent-nodejs/issues/149)) ([ebf27ff](https://github.com/ForestAdmin/agent-nodejs/commit/ebf27ffb439f5f2c983fe8873a515fe2802a9a17))
|
|
325
|
+
* bootstrap agent package ([#12](https://github.com/ForestAdmin/agent-nodejs/issues/12)) ([182c858](https://github.com/ForestAdmin/agent-nodejs/commit/182c858b6d912dba37fe821cc6baaad75b80c59d))
|
|
326
|
+
* **condition-tree:** implement user filters and better emulation ([#76](https://github.com/ForestAdmin/agent-nodejs/issues/76)) ([e425704](https://github.com/ForestAdmin/agent-nodejs/commit/e4257046853b2b165f4190daa0d953d7f79ed837))
|
|
327
|
+
* **datasource sequelize:** handle date aggregation ([#133](https://github.com/ForestAdmin/agent-nodejs/issues/133)) ([09158a5](https://github.com/ForestAdmin/agent-nodejs/commit/09158a54da2114276d2c7edc9957ea396f700fa0))
|
|
328
|
+
* **datasource sequelize:** handle enum field type ([#193](https://github.com/ForestAdmin/agent-nodejs/issues/193)) ([04cc0f5](https://github.com/ForestAdmin/agent-nodejs/commit/04cc0f528b10f298b08d78e89e8f553b5e1a08e1))
|
|
329
|
+
* **datasource sequelize:** handle isReadOnly property based on autoIncrement ([#194](https://github.com/ForestAdmin/agent-nodejs/issues/194)) ([28b8e69](https://github.com/ForestAdmin/agent-nodejs/commit/28b8e69b363c125bff5f58a199209bda6bf16557))
|
|
330
|
+
* **datasource,live:** initial version for Live DataSource ([#67](https://github.com/ForestAdmin/agent-nodejs/issues/67)) ([e4ffa52](https://github.com/ForestAdmin/agent-nodejs/commit/e4ffa52c0f2146b73522ed705003018b3d4da758))
|
|
331
|
+
* **datasource,sequelize:** handle array types from Sequelize ([#104](https://github.com/ForestAdmin/agent-nodejs/issues/104)) ([58fc4dd](https://github.com/ForestAdmin/agent-nodejs/commit/58fc4dd661d112ce6462357374cc2380a3059292))
|
|
332
|
+
* **datasource,sequelize:** initial version for Sequelize DataSource ([#63](https://github.com/ForestAdmin/agent-nodejs/issues/63)) ([66ba46e](https://github.com/ForestAdmin/agent-nodejs/commit/66ba46e66b73a2611061125a7e14c88283c3489d))
|
|
333
|
+
* **example,live:** update example package to use Live DataSource ([#69](https://github.com/ForestAdmin/agent-nodejs/issues/69)) ([340d2a0](https://github.com/ForestAdmin/agent-nodejs/commit/340d2a08ea945169dd8c7547a5995bb7dd531fc5))
|
|
334
|
+
* implement relations using any unique key ([#159](https://github.com/ForestAdmin/agent-nodejs/issues/159)) ([b6be495](https://github.com/ForestAdmin/agent-nodejs/commit/b6be495d93ae03a67c6dc9b4ffbb0ae9f4cbc0bc))
|
package/dist/collection.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { ModelDefined } from 'sequelize';
|
|
2
|
-
import { AggregateResult, Aggregation, BaseCollection, DataSource, Filter, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { AggregateResult, Aggregation, BaseCollection, Caller, DataSource, Filter, Logger, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
|
|
3
3
|
export default class SequelizeCollection extends BaseCollection {
|
|
4
4
|
protected model: ModelDefined<any, any>;
|
|
5
5
|
private aggregationUtils;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
private queryConverter;
|
|
7
|
+
constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>, logger?: Logger);
|
|
8
|
+
create(caller: Caller, data: RecordData[]): Promise<RecordData[]>;
|
|
9
|
+
list(caller: Caller, filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
|
|
10
|
+
update(caller: Caller, filter: Filter, patch: RecordData): Promise<void>;
|
|
11
|
+
delete(caller: Caller, filter: Filter): Promise<void>;
|
|
12
|
+
aggregate(caller: Caller, filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=collection.d.ts.map
|
package/dist/collection.js
CHANGED
|
@@ -9,50 +9,56 @@ const aggregation_1 = __importDefault(require("./utils/aggregation"));
|
|
|
9
9
|
const model_to_collection_schema_converter_1 = __importDefault(require("./utils/model-to-collection-schema-converter"));
|
|
10
10
|
const query_converter_1 = __importDefault(require("./utils/query-converter"));
|
|
11
11
|
class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
12
|
+
constructor(name, datasource,
|
|
12
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
-
|
|
14
|
+
model, logger) {
|
|
14
15
|
super(name, datasource);
|
|
15
16
|
if (!model)
|
|
16
17
|
throw new Error('Invalid (null) model instance.');
|
|
17
18
|
this.model = model;
|
|
18
19
|
this.aggregationUtils = new aggregation_1.default(this.model);
|
|
19
|
-
|
|
20
|
+
this.queryConverter = new query_converter_1.default(this.model);
|
|
21
|
+
const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model, logger);
|
|
22
|
+
this.enableCount();
|
|
20
23
|
this.addFields(modelSchema.fields);
|
|
21
24
|
this.addSegments(modelSchema.segments);
|
|
22
25
|
}
|
|
23
|
-
async create(data) {
|
|
26
|
+
async create(caller, data) {
|
|
24
27
|
const records = await this.model.bulkCreate(data);
|
|
25
28
|
return records.map(record => record.get({ plain: true }));
|
|
26
29
|
}
|
|
27
|
-
async list(filter, projection) {
|
|
28
|
-
let include =
|
|
30
|
+
async list(caller, filter, projection) {
|
|
31
|
+
let include = this.queryConverter.getIncludeWithAttributesFromProjection(projection);
|
|
29
32
|
if (filter.conditionTree) {
|
|
30
|
-
include = include.concat(
|
|
33
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
|
|
34
|
+
}
|
|
35
|
+
if (filter.sort) {
|
|
36
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.sort.projection));
|
|
31
37
|
}
|
|
32
38
|
const query = {
|
|
33
39
|
attributes: projection.columns,
|
|
34
|
-
where:
|
|
40
|
+
where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
|
|
35
41
|
include,
|
|
36
42
|
limit: filter.page?.limit,
|
|
37
43
|
offset: filter.page?.skip,
|
|
38
|
-
order:
|
|
44
|
+
order: this.queryConverter.getOrderFromSort(filter.sort),
|
|
39
45
|
subQuery: false,
|
|
40
46
|
};
|
|
41
47
|
const records = await this.model.findAll(query);
|
|
42
48
|
return records.map(record => record.get({ plain: true }));
|
|
43
49
|
}
|
|
44
|
-
async update(filter, patch) {
|
|
50
|
+
async update(caller, filter, patch) {
|
|
45
51
|
await this.model.update(patch, {
|
|
46
|
-
where:
|
|
52
|
+
where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
|
|
47
53
|
fields: Object.keys(patch),
|
|
48
54
|
});
|
|
49
55
|
}
|
|
50
|
-
async delete(filter) {
|
|
56
|
+
async delete(caller, filter) {
|
|
51
57
|
await this.model.destroy({
|
|
52
|
-
where:
|
|
58
|
+
where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
|
|
53
59
|
});
|
|
54
60
|
}
|
|
55
|
-
async aggregate(filter, aggregation, limit) {
|
|
61
|
+
async aggregate(caller, filter, aggregation, limit) {
|
|
56
62
|
let aggregationField = aggregation.field;
|
|
57
63
|
if (aggregation.operation === 'Count' || !aggregationField) {
|
|
58
64
|
aggregationField = '*';
|
|
@@ -66,15 +72,15 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
66
72
|
this.aggregationUtils.aggregateFieldName,
|
|
67
73
|
];
|
|
68
74
|
const { groups, attributes: groupAttributes } = this.aggregationUtils.getGroupAndAttributesFromAggregation(aggregation.groups);
|
|
69
|
-
let include =
|
|
75
|
+
let include = this.queryConverter.getIncludeFromProjection(aggregation.projection);
|
|
70
76
|
if (filter.conditionTree) {
|
|
71
|
-
include = include.concat(
|
|
77
|
+
include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
|
|
72
78
|
}
|
|
73
79
|
const order = this.aggregationUtils.getOrder(aggregationFunction);
|
|
74
80
|
const query = {
|
|
75
81
|
attributes: [...groupAttributes, aggregationAttribute],
|
|
76
82
|
group: groups,
|
|
77
|
-
where:
|
|
83
|
+
where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
|
|
78
84
|
include,
|
|
79
85
|
limit,
|
|
80
86
|
order: [order],
|
|
@@ -86,4 +92,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
|
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
exports.default = SequelizeCollection;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVd5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQU03RCxZQUNFLElBQVksRUFDWixVQUFzQjtJQUN0Qiw4REFBOEQ7SUFDOUQsS0FBNkIsRUFDN0IsTUFBZTtRQUVmLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUkscUJBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FB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
|
package/dist/datasource.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { BaseDataSource, Logger } from '@forestadmin/datasource-toolkit';
|
|
1
2
|
import { Sequelize } from 'sequelize';
|
|
2
|
-
import { BaseDataSource } from '@forestadmin/datasource-toolkit';
|
|
3
3
|
import SequelizeCollection from './collection';
|
|
4
4
|
export default class SequelizeDataSource extends BaseDataSource<SequelizeCollection> {
|
|
5
5
|
protected sequelize: Sequelize;
|
|
6
|
-
constructor(sequelize: Sequelize);
|
|
7
|
-
protected createCollections(models: Sequelize['models']): void;
|
|
6
|
+
constructor(sequelize: Sequelize, logger?: Logger);
|
|
7
|
+
protected createCollections(models: Sequelize['models'], logger?: Logger): void;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=datasource.d.ts.map
|
package/dist/datasource.js
CHANGED
|
@@ -6,23 +6,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
7
7
|
const collection_1 = __importDefault(require("./collection"));
|
|
8
8
|
class SequelizeDataSource extends datasource_toolkit_1.BaseDataSource {
|
|
9
|
-
constructor(sequelize) {
|
|
9
|
+
constructor(sequelize, logger) {
|
|
10
10
|
super();
|
|
11
11
|
this.sequelize = null;
|
|
12
12
|
if (!sequelize)
|
|
13
13
|
throw new Error('Invalid (null) Sequelize instance.');
|
|
14
14
|
this.sequelize = sequelize;
|
|
15
|
-
this.createCollections(this.sequelize.models);
|
|
15
|
+
this.createCollections(this.sequelize.models, logger);
|
|
16
16
|
}
|
|
17
|
-
createCollections(models) {
|
|
17
|
+
createCollections(models, logger) {
|
|
18
18
|
Object.values(models)
|
|
19
19
|
// avoid schema reordering
|
|
20
20
|
.sort((modelA, modelB) => (modelA.name > modelB.name ? 1 : -1))
|
|
21
21
|
.forEach(model => {
|
|
22
|
-
const collection = new collection_1.default(model.name, this, model);
|
|
22
|
+
const collection = new collection_1.default(model.name, this, model, logger);
|
|
23
23
|
this.addCollection(collection);
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.default = SequelizeDataSource;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQXlFO0FBR3pFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFHbEYsWUFBWSxTQUFvQixFQUFFLE1BQWU7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFIQSxjQUFTLEdBQWMsSUFBSSxDQUFDO1FBS3BDLElBQUksQ0FBQyxTQUFTO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBMkIsRUFBRSxNQUFlO1FBQ3RFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLDBCQUEwQjthQUN6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0Y7QUF0QkQsc0NBc0JDIn0=
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { DataSourceFactory } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { Sequelize } from 'sequelize/types';
|
|
1
3
|
export { default as SequelizeCollection } from './collection';
|
|
2
4
|
export { default as SequelizeDataSource } from './datasource';
|
|
3
5
|
export { default as TypeConverter } from './utils/type-converter';
|
|
6
|
+
export declare function createSequelizeDataSource(connection: Sequelize): DataSourceFactory;
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TypeConverter = exports.SequelizeDataSource = exports.SequelizeCollection = void 0;
|
|
6
|
+
exports.createSequelizeDataSource = exports.TypeConverter = exports.SequelizeDataSource = exports.SequelizeCollection = void 0;
|
|
7
|
+
const datasource_1 = __importDefault(require("./datasource"));
|
|
7
8
|
var collection_1 = require("./collection");
|
|
8
9
|
Object.defineProperty(exports, "SequelizeCollection", { enumerable: true, get: function () { return __importDefault(collection_1).default; } });
|
|
9
|
-
var
|
|
10
|
-
Object.defineProperty(exports, "SequelizeDataSource", { enumerable: true, get: function () { return __importDefault(
|
|
10
|
+
var datasource_2 = require("./datasource");
|
|
11
|
+
Object.defineProperty(exports, "SequelizeDataSource", { enumerable: true, get: function () { return __importDefault(datasource_2).default; } });
|
|
11
12
|
var type_converter_1 = require("./utils/type-converter");
|
|
12
13
|
Object.defineProperty(exports, "TypeConverter", { enumerable: true, get: function () { return __importDefault(type_converter_1).default; } });
|
|
13
|
-
|
|
14
|
+
function createSequelizeDataSource(connection) {
|
|
15
|
+
return async (logger) => new datasource_1.default(connection, logger);
|
|
16
|
+
}
|
|
17
|
+
exports.createSequelizeDataSource = createSequelizeDataSource;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsOERBQStDO0FBRS9DLDJDQUE4RDtBQUFyRCxrSUFBQSxPQUFPLE9BQXVCO0FBQ3ZDLDJDQUE4RDtBQUFyRCxrSUFBQSxPQUFPLE9BQXVCO0FBQ3ZDLHlEQUFrRTtBQUF6RCxnSUFBQSxPQUFPLE9BQWlCO0FBRWpDLFNBQWdCLHlCQUF5QixDQUFDLFVBQXFCO0lBQzdELE9BQU8sS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxvQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUZELDhEQUVDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { AggregateResult, Aggregation } from '@forestadmin/datasource-toolkit';
|
|
1
2
|
import { GroupOption, Model, ModelDefined, ProjectionAlias } from 'sequelize';
|
|
2
3
|
import { Fn } from 'sequelize/types/utils';
|
|
3
|
-
import { AggregateResult, AggregationGroup } from '@forestadmin/datasource-toolkit';
|
|
4
4
|
export default class AggregationUtils {
|
|
5
5
|
private model;
|
|
6
6
|
private dialect;
|
|
@@ -8,11 +8,11 @@ export default class AggregationUtils {
|
|
|
8
8
|
constructor(model: ModelDefined<any, any>);
|
|
9
9
|
getGroupFieldName(groupField: string): string;
|
|
10
10
|
unAmbigousField(field: string): string;
|
|
11
|
-
getGroupAndAttributesFromAggregation(aggregationQueryGroup:
|
|
11
|
+
getGroupAndAttributesFromAggregation(aggregationQueryGroup: Aggregation['groups']): {
|
|
12
12
|
groups: GroupOption;
|
|
13
13
|
attributes: ProjectionAlias[];
|
|
14
14
|
};
|
|
15
15
|
getOrder(aggregationFunction: Fn): [string | Fn | import("sequelize/types/utils").Col | import("sequelize/types/utils").Literal, string];
|
|
16
|
-
computeResult(rows: Model<any, any>[], aggregationQueryGroup:
|
|
16
|
+
computeResult(rows: Model<any, any>[], aggregationQueryGroup: Aggregation['groups']): AggregateResult[];
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=aggregation.d.ts.map
|
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const sequelize_1 = require("sequelize");
|
|
7
6
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
7
|
+
const sequelize_1 = require("sequelize");
|
|
8
8
|
const date_aggregation_converter_1 = __importDefault(require("./date-aggregation-converter"));
|
|
9
9
|
class AggregationUtils {
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -89,4 +89,4 @@ class AggregationUtils {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
exports.default = AggregationUtils;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBZ0c7QUFDaEcseUNBUW1CO0FBR25CLDhGQUFvRTtBQUVwRSxNQUFxQixnQkFBZ0I7SUFPbkMsOERBQThEO0lBQzlELFlBQVksS0FBNkI7UUFIaEMsdUJBQWtCLEdBQUcsZUFBZSxDQUFDO1FBSTVDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sR0FBRyxVQUFVLGFBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxvQ0FBZSxDQUN2QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxxQ0FBcUMsZUFBZSxJQUFJLENBQzNFLENBQUM7YUFDSDtZQUVELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV6RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JC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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ModelDefined } from 'sequelize';
|
|
2
|
-
import { CollectionSchema } from '@forestadmin/datasource-toolkit';
|
|
2
|
+
import { CollectionSchema, Logger } from '@forestadmin/datasource-toolkit';
|
|
3
3
|
export default class ModelToCollectionSchemaConverter {
|
|
4
4
|
private static convertAssociation;
|
|
5
5
|
private static convertAssociations;
|
|
6
6
|
private static convertAttribute;
|
|
7
7
|
private static convertAttributes;
|
|
8
|
-
static convert(model: ModelDefined<any, any
|
|
8
|
+
static convert(model: ModelDefined<any, any>, logger: Logger): CollectionSchema;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=model-to-collection-schema-converter.d.ts.map
|
|
@@ -45,11 +45,16 @@ class ModelToCollectionSchemaConverter {
|
|
|
45
45
|
throw new Error(`Unsupported association: "${association.associationType}".`);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
static convertAssociations(associations) {
|
|
48
|
+
static convertAssociations(modelName, associations, logger) {
|
|
49
49
|
const schemaAssociations = {};
|
|
50
50
|
if (associations) {
|
|
51
|
-
Object.entries(associations).forEach(([
|
|
52
|
-
|
|
51
|
+
Object.entries(associations).forEach(([name, association]) => {
|
|
52
|
+
try {
|
|
53
|
+
schemaAssociations[name] = this.convertAssociation(association);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
logger?.('Warn', `Skipping association '${modelName}.${name}' (${error.message})`);
|
|
57
|
+
}
|
|
53
58
|
});
|
|
54
59
|
}
|
|
55
60
|
return schemaAssociations;
|
|
@@ -57,13 +62,14 @@ class ModelToCollectionSchemaConverter {
|
|
|
57
62
|
static convertAttribute(attribute) {
|
|
58
63
|
const sequelizeColumnType = attribute.type;
|
|
59
64
|
const columnType = type_converter_1.default.fromDataType(sequelizeColumnType);
|
|
60
|
-
const filterOperators = type_converter_1.default.
|
|
65
|
+
const filterOperators = type_converter_1.default.operatorsForColumnType(columnType);
|
|
61
66
|
const column = {
|
|
62
67
|
columnType,
|
|
63
68
|
filterOperators,
|
|
64
69
|
type: 'Column',
|
|
65
70
|
validation: [],
|
|
66
71
|
isReadOnly: attribute.autoIncrement,
|
|
72
|
+
isSortable: true,
|
|
67
73
|
};
|
|
68
74
|
if (attribute.allowNull === false &&
|
|
69
75
|
!column.isReadOnly &&
|
|
@@ -84,22 +90,28 @@ class ModelToCollectionSchemaConverter {
|
|
|
84
90
|
}
|
|
85
91
|
return column;
|
|
86
92
|
}
|
|
87
|
-
static convertAttributes(attributes) {
|
|
93
|
+
static convertAttributes(modelName, attributes, logger) {
|
|
88
94
|
const fields = {};
|
|
89
95
|
Object.entries(attributes).forEach(([name, attribute]) => {
|
|
90
|
-
|
|
96
|
+
try {
|
|
97
|
+
fields[name] = this.convertAttribute(attribute);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
logger?.('Warn', `Skipping column '${modelName}.${name}' (${error.message})`);
|
|
101
|
+
}
|
|
91
102
|
});
|
|
92
103
|
return fields;
|
|
93
104
|
}
|
|
94
105
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
-
static convert(model) {
|
|
106
|
+
static convert(model, logger) {
|
|
96
107
|
if (!model)
|
|
97
108
|
throw new Error('Invalid (null) model.');
|
|
98
109
|
return {
|
|
99
110
|
actions: {},
|
|
111
|
+
countable: true,
|
|
100
112
|
fields: {
|
|
101
|
-
...this.convertAttributes(model.getAttributes()),
|
|
102
|
-
...this.convertAssociations(model.associations),
|
|
113
|
+
...this.convertAttributes(model.name, model.getAttributes(), logger),
|
|
114
|
+
...this.convertAssociations(model.name, model.associations, logger),
|
|
103
115
|
},
|
|
104
116
|
searchable: false,
|
|
105
117
|
segments: [],
|
|
@@ -107,4 +119,4 @@ class ModelToCollectionSchemaConverter {
|
|
|
107
119
|
}
|
|
108
120
|
}
|
|
109
121
|
exports.default = ModelToCollectionSchemaConverter;
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdG8tY29sbGVjdGlvbi1zY2hlbWEtY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLXRvLWNvbGxlY3Rpb24tc2NoZW1hLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQVVtQjtBQVVuQixzRUFBNkM7QUFFN0MsTUFBcUIsZ0NBQWdDO0lBQzNDLE1BQU0sQ0FBQyxrQkFBa0I7SUFDL0IsOERBQThEO0lBQzlELFdBQTBEO1FBRTFELFFBQVEsV0FBVyxDQUFDLGVBQWUsRUFBRTtZQUNuQyxLQUFLLHFCQUFTLENBQUMsSUFBSTtnQkFDakIsT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQzFDLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtvQkFDbEMsZ0JBQWdCLEVBQUcsV0FBZ0QsQ0FBQyxTQUFTO29CQUM3RSxJQUFJLEVBQUUsV0FBVztpQkFDbEIsQ0FBQztZQUNKLEtBQUsseUJBQWEsQ0FBQyxJQUFJO2dCQUNyQixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsaUJBQWlCLEVBQUcsV0FBNkIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUk7b0JBQ3BFLFNBQVMsRUFBRyxXQUE2QixDQUFDLFVBQVU7b0JBQ3BELGVBQWUsRUFBRyxXQUE2QixDQUFDLFNBQVM7b0JBQ3pELFVBQVUsRUFBRyxXQUE2QixDQUFDLFFBQVE7b0JBQ25ELGdCQUFnQixFQUFHLFdBQTZCLENBQUMsU0FBUztvQkFDMUQsSUFBSSxFQUFFLFlBQVk7aUJBQ25CLENBQUM7WUFDSixLQUFLLG1CQUFPLENBQUMsSUFBSTtnQkFDZixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxVQUFVO29C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
|
|
@@ -1,12 +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
|
-
private
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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[];
|
|
11
15
|
}
|
|
12
16
|
//# sourceMappingURL=query-converter.d.ts.map
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
3
4
|
const sequelize_1 = require("sequelize");
|
|
4
5
|
class QueryConverter {
|
|
5
|
-
|
|
6
|
+
constructor(model) {
|
|
7
|
+
this.model = model;
|
|
8
|
+
this.dialect = this.model.sequelize.getDialect();
|
|
9
|
+
}
|
|
10
|
+
asArray(value) {
|
|
6
11
|
if (!Array.isArray(value))
|
|
7
12
|
return [value];
|
|
8
13
|
return value;
|
|
9
14
|
}
|
|
10
|
-
|
|
15
|
+
makeWhereClause(field, operator,
|
|
11
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
17
|
value) {
|
|
13
18
|
if (operator === null)
|
|
@@ -15,12 +20,24 @@ class QueryConverter {
|
|
|
15
20
|
switch (operator) {
|
|
16
21
|
case 'Blank':
|
|
17
22
|
return {
|
|
18
|
-
[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}%`),
|
|
19
40
|
};
|
|
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
41
|
case 'Equal':
|
|
25
42
|
return { [sequelize_1.Op.eq]: value };
|
|
26
43
|
case 'GreaterThan':
|
|
@@ -33,23 +50,36 @@ class QueryConverter {
|
|
|
33
50
|
return { [sequelize_1.Op.lt]: value };
|
|
34
51
|
case 'Missing':
|
|
35
52
|
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
53
|
case 'NotEqual':
|
|
39
54
|
return { [sequelize_1.Op.ne]: value };
|
|
40
55
|
case 'NotIn':
|
|
41
56
|
return { [sequelize_1.Op.notIn]: this.asArray(value) };
|
|
42
57
|
case 'Present':
|
|
43
58
|
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
59
|
default:
|
|
47
60
|
throw new Error(`Unsupported operator: "${operator}".`);
|
|
48
61
|
}
|
|
49
62
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
63
|
+
/*
|
|
64
|
+
* Delete and update sequelize methods does not provide the include options.
|
|
65
|
+
* This method is developed to by pass this problem.
|
|
66
|
+
*/
|
|
67
|
+
async getWhereFromConditionTreeToByPassInclude(conditionTree) {
|
|
68
|
+
const include = conditionTree ? this.getIncludeFromProjection(conditionTree.projection) : [];
|
|
69
|
+
const whereOptions = this.getWhereFromConditionTree(conditionTree);
|
|
70
|
+
if (include.length === 0) {
|
|
71
|
+
return whereOptions;
|
|
72
|
+
}
|
|
73
|
+
const keys = [...this.model.primaryKeyAttributes];
|
|
74
|
+
const records = await this.model.findAll({ attributes: keys, where: whereOptions, include });
|
|
75
|
+
const conditions = records.map(record => {
|
|
76
|
+
const equals = keys.map(pk => new datasource_toolkit_1.ConditionTreeLeaf(pk, 'Equal', record.get(pk)));
|
|
77
|
+
return datasource_toolkit_1.ConditionTreeFactory.intersect(...equals);
|
|
78
|
+
});
|
|
79
|
+
const union = datasource_toolkit_1.ConditionTreeFactory.union(...conditions);
|
|
80
|
+
return this.getWhereFromConditionTree(union);
|
|
81
|
+
}
|
|
82
|
+
getWhereFromConditionTree(conditionTree) {
|
|
53
83
|
if (!conditionTree)
|
|
54
84
|
return {};
|
|
55
85
|
const sequelizeWhereClause = {};
|
|
@@ -62,7 +92,7 @@ class QueryConverter {
|
|
|
62
92
|
if (!Array.isArray(conditions)) {
|
|
63
93
|
throw new Error('Conditions must be an array.');
|
|
64
94
|
}
|
|
65
|
-
sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(
|
|
95
|
+
sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(condition));
|
|
66
96
|
}
|
|
67
97
|
else if (conditionTree.operator !== undefined) {
|
|
68
98
|
const { field, operator, value } = conditionTree;
|
|
@@ -72,21 +102,21 @@ class QueryConverter {
|
|
|
72
102
|
const paths = field.split(':');
|
|
73
103
|
const fieldName = paths.pop();
|
|
74
104
|
const safeFieldName = paths
|
|
75
|
-
.reduce((acc, path) => acc.associations[path].target, model)
|
|
105
|
+
.reduce((acc, path) => acc.associations[path].target, this.model)
|
|
76
106
|
.getAttributes()[fieldName].field;
|
|
77
107
|
safeField = `${paths.join('.')}.${safeFieldName}`;
|
|
78
108
|
}
|
|
79
109
|
else {
|
|
80
|
-
safeField = model.getAttributes()[field].field;
|
|
110
|
+
safeField = this.model.getAttributes()[field].field;
|
|
81
111
|
}
|
|
82
|
-
sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(
|
|
112
|
+
sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(safeField, operator, value);
|
|
83
113
|
}
|
|
84
114
|
else {
|
|
85
115
|
throw new Error('Invalid ConditionTree.');
|
|
86
116
|
}
|
|
87
117
|
return sequelizeWhereClause;
|
|
88
118
|
}
|
|
89
|
-
|
|
119
|
+
computeIncludeFromProjection(projection, withAttributes = true) {
|
|
90
120
|
return Object.entries(projection.relations).map(([relationName, relationProjection]) => {
|
|
91
121
|
return {
|
|
92
122
|
association: relationName,
|
|
@@ -95,13 +125,13 @@ class QueryConverter {
|
|
|
95
125
|
};
|
|
96
126
|
});
|
|
97
127
|
}
|
|
98
|
-
|
|
128
|
+
getIncludeFromProjection(projection) {
|
|
99
129
|
return this.computeIncludeFromProjection(projection, false);
|
|
100
130
|
}
|
|
101
|
-
|
|
131
|
+
getIncludeWithAttributesFromProjection(projection) {
|
|
102
132
|
return this.computeIncludeFromProjection(projection);
|
|
103
133
|
}
|
|
104
|
-
|
|
134
|
+
getOrderFromSort(sort) {
|
|
105
135
|
return (sort ?? []).map(({ field, ascending }) => {
|
|
106
136
|
const path = field.split(':');
|
|
107
137
|
return [...path, ascending ? 'ASC' : 'DESC'];
|
|
@@ -109,4 +139,4 @@ class QueryConverter {
|
|
|
109
139
|
}
|
|
110
140
|
}
|
|
111
141
|
exports.default = QueryConverter;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdFQVF5QztBQUN6Qyx5Q0FZbUI7QUFHbkIsTUFBcUIsY0FBYztJQUlqQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQ3JCLEtBQWEsRUFDYixRQUFrQjtJQUNsQiw4REFBOEQ7SUFDOUQsS0FBVztRQUVYLElBQUksUUFBUSxLQUFLLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkUsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxPQUFPO2dCQUNWLE9BQU87b0JBQ0wsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQWUsRUFBRSxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUNqRixDQUFDO1lBRUosS0FBSyxNQUFNO2dCQUNULElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUMzQixPQUFPLElBQUEsaUJBQUssRUFBQyxJQUFBLGVBQUcsRUFBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AbstractDataTypeConstructor,
|
|
1
|
+
import { AbstractDataTypeConstructor, DataType } from 'sequelize';
|
|
2
2
|
import { ColumnType, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit';
|
|
3
3
|
export default class TypeConverter {
|
|
4
4
|
private static readonly columnTypeToDataType;
|
|
5
5
|
static fromColumnType(columnType: PrimitiveTypes): AbstractDataTypeConstructor;
|
|
6
|
-
private static
|
|
7
|
-
static fromDataType(dataType:
|
|
6
|
+
private static getColumnTypeFromDataType;
|
|
7
|
+
static fromDataType(dataType: DataType): ColumnType;
|
|
8
8
|
private static readonly baseOperators;
|
|
9
|
-
static
|
|
9
|
+
static operatorsForColumnType(columnType: ColumnType): Set<Operator>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=type-converter.d.ts.map
|
|
@@ -9,83 +9,94 @@ class TypeConverter {
|
|
|
9
9
|
throw new Error(`Unsupported column type: "${columnType}".`);
|
|
10
10
|
return dataType;
|
|
11
11
|
}
|
|
12
|
+
static getColumnTypeFromDataType(dataType) {
|
|
13
|
+
switch (true) {
|
|
14
|
+
case dataType instanceof sequelize_1.DataTypes.BOOLEAN:
|
|
15
|
+
return 'Boolean';
|
|
16
|
+
case dataType instanceof sequelize_1.DataTypes.DATE:
|
|
17
|
+
case dataType instanceof sequelize_1.DataTypes.NOW:
|
|
18
|
+
return 'Date';
|
|
19
|
+
case dataType instanceof sequelize_1.DataTypes.DATEONLY:
|
|
20
|
+
return 'Dateonly';
|
|
21
|
+
case dataType instanceof sequelize_1.DataTypes.ENUM:
|
|
22
|
+
return 'Enum';
|
|
23
|
+
case dataType instanceof sequelize_1.DataTypes.JSON:
|
|
24
|
+
case dataType instanceof sequelize_1.DataTypes.JSONB:
|
|
25
|
+
return 'Json';
|
|
26
|
+
case dataType instanceof sequelize_1.DataTypes.BIGINT:
|
|
27
|
+
case dataType instanceof sequelize_1.DataTypes.DECIMAL:
|
|
28
|
+
case dataType instanceof sequelize_1.DataTypes.DOUBLE:
|
|
29
|
+
case dataType instanceof sequelize_1.DataTypes.FLOAT:
|
|
30
|
+
case dataType instanceof sequelize_1.DataTypes.INTEGER:
|
|
31
|
+
case dataType instanceof sequelize_1.DataTypes.MEDIUMINT:
|
|
32
|
+
case dataType instanceof sequelize_1.DataTypes.NUMBER:
|
|
33
|
+
case dataType instanceof sequelize_1.DataTypes.REAL:
|
|
34
|
+
case dataType instanceof sequelize_1.DataTypes.SMALLINT:
|
|
35
|
+
case dataType instanceof sequelize_1.DataTypes.TINYINT:
|
|
36
|
+
return 'Number';
|
|
37
|
+
case dataType instanceof sequelize_1.DataTypes.CHAR:
|
|
38
|
+
case dataType instanceof sequelize_1.DataTypes.CITEXT:
|
|
39
|
+
case dataType instanceof sequelize_1.DataTypes.STRING:
|
|
40
|
+
case dataType instanceof sequelize_1.DataTypes.TEXT:
|
|
41
|
+
return 'String';
|
|
42
|
+
case dataType instanceof sequelize_1.DataTypes.TIME:
|
|
43
|
+
return 'Timeonly';
|
|
44
|
+
case dataType instanceof sequelize_1.DataTypes.UUID:
|
|
45
|
+
case dataType instanceof sequelize_1.DataTypes.UUIDV1:
|
|
46
|
+
case dataType instanceof sequelize_1.DataTypes.UUIDV4:
|
|
47
|
+
return 'Uuid';
|
|
48
|
+
default:
|
|
49
|
+
throw new Error(`Unsupported data type: "${dataType}"`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
12
52
|
static fromDataType(dataType) {
|
|
13
|
-
|
|
14
|
-
if (dataTypeName === 'ARRAY') {
|
|
53
|
+
if (dataType instanceof sequelize_1.DataTypes.ARRAY) {
|
|
15
54
|
const arrayDataType = dataType;
|
|
16
|
-
return [
|
|
55
|
+
return [TypeConverter.fromDataType(arrayDataType.type)];
|
|
17
56
|
}
|
|
18
|
-
|
|
19
|
-
if (!columnType)
|
|
20
|
-
throw new Error(`Unsupported data type: "${dataType}".`);
|
|
21
|
-
return columnType;
|
|
57
|
+
return TypeConverter.getColumnTypeFromDataType(dataType);
|
|
22
58
|
}
|
|
23
|
-
static
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return new Set([...this.baseOperators, 'In', 'IncludesAll', 'NotIn']);
|
|
59
|
+
static operatorsForColumnType(columnType) {
|
|
60
|
+
if (Array.isArray(columnType)) {
|
|
61
|
+
return new Set([...TypeConverter.baseOperators, 'In', 'IncludesAll', 'NotIn']);
|
|
27
62
|
}
|
|
28
|
-
switch (
|
|
29
|
-
case '
|
|
30
|
-
return new Set([...
|
|
31
|
-
case '
|
|
32
|
-
case 'UUIDV1':
|
|
33
|
-
case 'UUIDV4':
|
|
63
|
+
switch (columnType) {
|
|
64
|
+
case 'Boolean':
|
|
65
|
+
return new Set([...TypeConverter.baseOperators]);
|
|
66
|
+
case 'Uuid':
|
|
34
67
|
return new Set([
|
|
35
|
-
...
|
|
68
|
+
...TypeConverter.baseOperators,
|
|
36
69
|
'Contains',
|
|
37
70
|
'EndsWith',
|
|
38
71
|
'Like',
|
|
39
72
|
'StartsWith',
|
|
40
73
|
]);
|
|
41
|
-
case '
|
|
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':
|
|
74
|
+
case 'Number':
|
|
56
75
|
return new Set([
|
|
57
|
-
...
|
|
58
|
-
'
|
|
59
|
-
'
|
|
76
|
+
...TypeConverter.baseOperators,
|
|
77
|
+
'GreaterThan',
|
|
78
|
+
'In',
|
|
79
|
+
'LessThan',
|
|
80
|
+
'NotIn',
|
|
81
|
+
]);
|
|
82
|
+
case 'String':
|
|
83
|
+
return new Set([
|
|
84
|
+
...TypeConverter.baseOperators,
|
|
60
85
|
'In',
|
|
61
86
|
'Like',
|
|
87
|
+
'ILike',
|
|
62
88
|
'LongerThan',
|
|
63
89
|
'NotContains',
|
|
64
90
|
'NotIn',
|
|
65
91
|
'ShorterThan',
|
|
66
|
-
'StartsWith',
|
|
67
92
|
]);
|
|
68
|
-
case '
|
|
69
|
-
case '
|
|
70
|
-
|
|
71
|
-
case '
|
|
72
|
-
return new Set([...
|
|
73
|
-
case '
|
|
74
|
-
return new Set([...
|
|
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':
|
|
93
|
+
case 'Date':
|
|
94
|
+
case 'Dateonly':
|
|
95
|
+
return new Set([...TypeConverter.baseOperators, 'GreaterThan', 'LessThan']);
|
|
96
|
+
case 'Enum':
|
|
97
|
+
return new Set([...TypeConverter.baseOperators, 'In', 'NotIn']);
|
|
98
|
+
case 'Json':
|
|
99
|
+
return new Set([...TypeConverter.baseOperators]);
|
|
89
100
|
default:
|
|
90
101
|
return new Set();
|
|
91
102
|
}
|
|
@@ -105,44 +116,6 @@ TypeConverter.columnTypeToDataType = {
|
|
|
105
116
|
Timeonly: sequelize_1.DataTypes.TIME,
|
|
106
117
|
Uuid: sequelize_1.DataTypes.UUID,
|
|
107
118
|
};
|
|
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
119
|
TypeConverter.baseOperators = [
|
|
147
120
|
'Blank',
|
|
148
121
|
'Equal',
|
|
@@ -150,4 +123,4 @@ TypeConverter.baseOperators = [
|
|
|
150
123
|
'NotEqual',
|
|
151
124
|
'Present',
|
|
152
125
|
];
|
|
153
|
-
//# 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.30",
|
|
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.25"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist/**/*.js",
|