@forestadmin/datasource-sequelize 1.0.0-beta.4 → 1.0.0-beta.42

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 CHANGED
@@ -1,3 +1,383 @@
1
+ # @forestadmin/datasource-sequelize [1.0.0-beta.42](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.41...@forestadmin/datasource-sequelize@1.0.0-beta.42) (2022-09-12)
2
+
3
+
4
+
5
+
6
+
7
+ ### Dependencies
8
+
9
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.32
10
+
11
+ # @forestadmin/datasource-sequelize [1.0.0-beta.41](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.40...@forestadmin/datasource-sequelize@1.0.0-beta.41) (2022-09-08)
12
+
13
+
14
+
15
+
16
+
17
+ ### Dependencies
18
+
19
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.31
20
+
21
+ # @forestadmin/datasource-sequelize [1.0.0-beta.40](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.39...@forestadmin/datasource-sequelize@1.0.0-beta.40) (2022-09-07)
22
+
23
+
24
+
25
+
26
+
27
+ ### Dependencies
28
+
29
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.30
30
+
31
+ # @forestadmin/datasource-sequelize [1.0.0-beta.39](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.38...@forestadmin/datasource-sequelize@1.0.0-beta.39) (2022-09-07)
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * inverted keys in sequelize belongs to many ([#409](https://github.com/ForestAdmin/agent-nodejs/issues/409)) ([4adb3a2](https://github.com/ForestAdmin/agent-nodejs/commit/4adb3a244efb0842c475fcbdf4a5f38552a6b7df))
37
+
38
+ # @forestadmin/datasource-sequelize [1.0.0-beta.38](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.37...@forestadmin/datasource-sequelize@1.0.0-beta.38) (2022-09-05)
39
+
40
+
41
+
42
+
43
+
44
+ ### Dependencies
45
+
46
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.29
47
+
48
+ # @forestadmin/datasource-sequelize [1.0.0-beta.37](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.36...@forestadmin/datasource-sequelize@1.0.0-beta.37) (2022-09-05)
49
+
50
+
51
+
52
+
53
+
54
+ ### Dependencies
55
+
56
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.28
57
+
58
+ # @forestadmin/datasource-sequelize [1.0.0-beta.36](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.35...@forestadmin/datasource-sequelize@1.0.0-beta.36) (2022-08-23)
59
+
60
+
61
+
62
+
63
+
64
+ ### Dependencies
65
+
66
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.27
67
+
68
+ # @forestadmin/datasource-sequelize [1.0.0-beta.35](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.34...@forestadmin/datasource-sequelize@1.0.0-beta.35) (2022-08-23)
69
+
70
+
71
+ ### Features
72
+
73
+ * **sequelize:** improve constraints error handling ([#390](https://github.com/ForestAdmin/agent-nodejs/issues/390)) ([c03e342](https://github.com/ForestAdmin/agent-nodejs/commit/c03e342adb07eb502d5b061db48ef0d783d64cba))
74
+
75
+ # @forestadmin/datasource-sequelize [1.0.0-beta.34](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.33...@forestadmin/datasource-sequelize@1.0.0-beta.34) (2022-07-25)
76
+
77
+
78
+ ### Bug Fixes
79
+
80
+ * update code and sequelize version to avoid crash ([#374](https://github.com/ForestAdmin/agent-nodejs/issues/374)) ([e003416](https://github.com/ForestAdmin/agent-nodejs/commit/e0034166b86e48781ea099086fd93aa7c68dba03))
81
+
82
+ # @forestadmin/datasource-sequelize [1.0.0-beta.33](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.32...@forestadmin/datasource-sequelize@1.0.0-beta.33) (2022-06-27)
83
+
84
+
85
+ ### Bug Fixes
86
+
87
+ * **datasource sequelize:** aggregation get correctly nested relation ([#349](https://github.com/ForestAdmin/agent-nodejs/issues/349)) ([f9f89cd](https://github.com/ForestAdmin/agent-nodejs/commit/f9f89cd9d21d2cc8195d3aa04c33a6c2b76986e4))
88
+
89
+ # @forestadmin/datasource-sequelize [1.0.0-beta.32](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.31...@forestadmin/datasource-sequelize@1.0.0-beta.32) (2022-06-16)
90
+
91
+
92
+ ### Bug Fixes
93
+
94
+ * **datasource-sequelize:** serialize record to transform date to iso string ([#331](https://github.com/ForestAdmin/agent-nodejs/issues/331)) ([70216bb](https://github.com/ForestAdmin/agent-nodejs/commit/70216bb7fc5307e458ee5651e9f16c90b61ff49a))
95
+
96
+ # @forestadmin/datasource-sequelize [1.0.0-beta.31](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.30...@forestadmin/datasource-sequelize@1.0.0-beta.31) (2022-06-15)
97
+
98
+
99
+
100
+
101
+
102
+ ### Dependencies
103
+
104
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.26
105
+
106
+ # @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)
107
+
108
+
109
+
110
+
111
+
112
+ ### Dependencies
113
+
114
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.25
115
+
116
+ # @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)
117
+
118
+
119
+
120
+
121
+
122
+ ### Dependencies
123
+
124
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.24
125
+
126
+ # @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)
127
+
128
+
129
+
130
+
131
+
132
+ ### Dependencies
133
+
134
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.23
135
+
136
+ # @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)
137
+
138
+
139
+
140
+
141
+
142
+ ### Dependencies
143
+
144
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.22
145
+
146
+ # @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)
147
+
148
+
149
+
150
+
151
+
152
+ ### Dependencies
153
+
154
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.21
155
+
156
+ # @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)
157
+
158
+
159
+ ### Features
160
+
161
+ * make count an optional feature ([#327](https://github.com/ForestAdmin/agent-nodejs/issues/327)) ([b6f688c](https://github.com/ForestAdmin/agent-nodejs/commit/b6f688ca5f84aa29740761ff848c4beca5ee61d6))
162
+
163
+
164
+
165
+
166
+
167
+ ### Dependencies
168
+
169
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.20
170
+
171
+ # @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)
172
+
173
+
174
+ ### Features
175
+
176
+ * **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))
177
+
178
+
179
+
180
+
181
+
182
+ ### Dependencies
183
+
184
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.19
185
+
186
+ # @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)
187
+
188
+
189
+
190
+
191
+
192
+ ### Dependencies
193
+
194
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.18
195
+
196
+ # @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)
197
+
198
+
199
+
200
+
201
+
202
+ ### Dependencies
203
+
204
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.17
205
+
206
+ # @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)
207
+
208
+
209
+ ### Features
210
+
211
+ * autocomplete on field names ([#263](https://github.com/ForestAdmin/agent-nodejs/issues/263)) ([e2025d5](https://github.com/ForestAdmin/agent-nodejs/commit/e2025d57d930edf6d326bd0c6d7fffcd4aad728d))
212
+
213
+
214
+
215
+
216
+
217
+ ### Dependencies
218
+
219
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.16
220
+
221
+ # @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)
222
+
223
+
224
+
225
+
226
+
227
+ ### Dependencies
228
+
229
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.15
230
+
231
+ # @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)
232
+
233
+
234
+
235
+
236
+
237
+ ### Dependencies
238
+
239
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.14
240
+
241
+ # @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)
242
+
243
+
244
+
245
+
246
+
247
+ ### Dependencies
248
+
249
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.13
250
+
251
+ # @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)
252
+
253
+
254
+ ### Bug Fixes
255
+
256
+ * datasource naming consistency ([#292](https://github.com/ForestAdmin/agent-nodejs/issues/292)) ([ff50a1f](https://github.com/ForestAdmin/agent-nodejs/commit/ff50a1f02aa65b3d99824c2bc9fb19d729a4e465))
257
+
258
+
259
+
260
+
261
+
262
+ ### Dependencies
263
+
264
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.12
265
+
266
+ # @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)
267
+
268
+
269
+
270
+
271
+
272
+ ### Dependencies
273
+
274
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.11
275
+
276
+ # @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)
277
+
278
+
279
+
280
+
281
+
282
+ ### Dependencies
283
+
284
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.10
285
+
286
+ # @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)
287
+
288
+
289
+
290
+
291
+
292
+ ### Dependencies
293
+
294
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.9
295
+
296
+ # @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)
297
+
298
+
299
+
300
+
301
+
302
+ ### Dependencies
303
+
304
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.8
305
+
306
+ # @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)
307
+
308
+
309
+ ### Bug Fixes
310
+
311
+ * **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))
312
+
313
+ # @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)
314
+
315
+
316
+ ### Features
317
+
318
+ * 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))
319
+
320
+
321
+
322
+
323
+
324
+ ### Dependencies
325
+
326
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.7
327
+
328
+ # @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)
329
+
330
+
331
+ ### Bug Fixes
332
+
333
+ * **datasource sequelize:** all field are sortable ([#262](https://github.com/ForestAdmin/agent-nodejs/issues/262)) ([8d85346](https://github.com/ForestAdmin/agent-nodejs/commit/8d8534662bc058466901095a0c0d82e06d2f13b0))
334
+
335
+ # @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)
336
+
337
+
338
+ ### Bug Fixes
339
+
340
+ * import packages from js ([#260](https://github.com/ForestAdmin/agent-nodejs/issues/260)) ([de00886](https://github.com/ForestAdmin/agent-nodejs/commit/de008862971ea5d3559e5a4c3136b0dd2161d760))
341
+
342
+ # @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)
343
+
344
+
345
+ ### Features
346
+
347
+ * 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))
348
+
349
+
350
+
351
+
352
+
353
+ ### Dependencies
354
+
355
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.6
356
+
357
+ # @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)
358
+
359
+
360
+ ### Bug Fixes
361
+
362
+ * **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))
363
+
364
+ # @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)
365
+
366
+
367
+
368
+
369
+
370
+ ### Dependencies
371
+
372
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.5
373
+
374
+ # @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)
375
+
376
+
377
+ ### Bug Fixes
378
+
379
+ * **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))
380
+
1
381
  # @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)
2
382
 
3
383
 
@@ -1,13 +1,16 @@
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
+ private col;
6
+ private fn;
5
7
  private aggregationUtils;
6
- constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>);
7
- create(data: RecordData[]): Promise<RecordData[]>;
8
- list(filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
9
- update(filter: Filter, patch: RecordData): Promise<void>;
10
- delete(filter: Filter): Promise<void>;
11
- aggregate(filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
8
+ private queryConverter;
9
+ constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>, logger?: Logger);
10
+ create(caller: Caller, data: RecordData[]): Promise<RecordData[]>;
11
+ list(caller: Caller, filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
12
+ update(caller: Caller, filter: Filter, patch: RecordData): Promise<void>;
13
+ delete(caller: Caller, filter: Filter): Promise<void>;
14
+ aggregate(caller: Caller, filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
12
15
  }
13
16
  //# sourceMappingURL=collection.d.ts.map
@@ -3,78 +3,89 @@ 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");
8
7
  const aggregation_1 = __importDefault(require("./utils/aggregation"));
9
8
  const model_to_collection_schema_converter_1 = __importDefault(require("./utils/model-to-collection-schema-converter"));
10
9
  const query_converter_1 = __importDefault(require("./utils/query-converter"));
10
+ const serializer_1 = __importDefault(require("./utils/serializer"));
11
+ const error_handler_1 = __importDefault(require("./utils/error-handler"));
11
12
  class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
13
+ constructor(name, datasource,
12
14
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- constructor(name, datasource, model) {
15
+ model, logger) {
14
16
  super(name, datasource);
15
17
  if (!model)
16
18
  throw new Error('Invalid (null) model instance.');
17
19
  this.model = model;
20
+ this.col = this.model.sequelize.col;
21
+ this.fn = this.model.sequelize.fn;
18
22
  this.aggregationUtils = new aggregation_1.default(this.model);
19
- const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model);
23
+ this.queryConverter = new query_converter_1.default(this.model);
24
+ const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model, logger);
25
+ this.enableCount();
20
26
  this.addFields(modelSchema.fields);
21
27
  this.addSegments(modelSchema.segments);
22
28
  }
23
- async create(data) {
24
- const records = await this.model.bulkCreate(data);
25
- return records.map(record => record.get({ plain: true }));
29
+ async create(caller, data) {
30
+ const records = await (0, error_handler_1.default)('create', () => this.model.bulkCreate(data));
31
+ return records.map(record => serializer_1.default.serialize(record.get({ plain: true })));
26
32
  }
27
- async list(filter, projection) {
28
- let include = query_converter_1.default.getIncludeWithAttributesFromProjection(projection);
33
+ async list(caller, filter, projection) {
34
+ let include = this.queryConverter.getIncludeWithAttributesFromProjection(projection);
29
35
  if (filter.conditionTree) {
30
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
36
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
37
+ }
38
+ if (filter.sort) {
39
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.sort.projection));
31
40
  }
32
41
  const query = {
33
42
  attributes: projection.columns,
34
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
43
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
35
44
  include,
36
45
  limit: filter.page?.limit,
37
46
  offset: filter.page?.skip,
38
- order: query_converter_1.default.getOrderFromSort(filter.sort),
47
+ order: this.queryConverter.getOrderFromSort(filter.sort),
39
48
  subQuery: false,
40
49
  };
41
50
  const records = await this.model.findAll(query);
42
- return records.map(record => record.get({ plain: true }));
51
+ return records.map(record => serializer_1.default.serialize(record.get({ plain: true })));
43
52
  }
44
- async update(filter, patch) {
45
- await this.model.update(patch, {
46
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
53
+ async update(caller, filter, patch) {
54
+ const options = {
55
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
47
56
  fields: Object.keys(patch),
48
- });
57
+ };
58
+ await (0, error_handler_1.default)('update', () => this.model.update(patch, options));
49
59
  }
50
- async delete(filter) {
51
- await this.model.destroy({
52
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
53
- });
60
+ async delete(caller, filter) {
61
+ const options = {
62
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
63
+ };
64
+ await (0, error_handler_1.default)('delete', () => this.model.destroy(options));
54
65
  }
55
- async aggregate(filter, aggregation, limit) {
66
+ async aggregate(caller, filter, aggregation, limit) {
56
67
  let aggregationField = aggregation.field;
57
68
  if (aggregation.operation === 'Count' || !aggregationField) {
58
69
  aggregationField = '*';
59
70
  }
60
71
  else {
61
- aggregationField = this.aggregationUtils.unAmbigousField(aggregationField);
72
+ aggregationField = this.aggregationUtils.quoteField(aggregationField);
62
73
  }
63
- const aggregationFunction = (0, sequelize_1.fn)(aggregation.operation.toUpperCase(), (0, sequelize_1.col)(aggregationField));
74
+ const aggregationFunction = this.fn(aggregation.operation.toUpperCase(), this.col(aggregationField));
64
75
  const aggregationAttribute = [
65
76
  aggregationFunction,
66
77
  this.aggregationUtils.aggregateFieldName,
67
78
  ];
68
79
  const { groups, attributes: groupAttributes } = this.aggregationUtils.getGroupAndAttributesFromAggregation(aggregation.groups);
69
- let include = query_converter_1.default.getIncludeFromProjection(aggregation.projection);
80
+ let include = this.queryConverter.getIncludeFromProjection(aggregation.projection);
70
81
  if (filter.conditionTree) {
71
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
82
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
72
83
  }
73
84
  const order = this.aggregationUtils.getOrder(aggregationFunction);
74
85
  const query = {
75
86
  attributes: [...groupAttributes, aggregationAttribute],
76
87
  group: groups,
77
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
88
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
78
89
  include,
79
90
  limit,
80
91
  order: [order],
@@ -86,4 +97,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
86
97
  }
87
98
  }
88
99
  exports.default = SequelizeCollection;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVN5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQUs3RCw4REFBOEQ7SUFDOUQsWUFBWSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxLQUE2QjtRQUM3RSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBa0I7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxN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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBV3lDO0FBRXpDLHNFQUFtRDtBQUNuRCx3SEFBMEU7QUFDMUUsOEVBQXFEO0FBQ3JELG9FQUE0QztBQUM1QywwRUFBaUQ7QUFFakQsTUFBcUIsbUJBQW9CLFNBQVEsbUNBQWM7SUFTN0QsWUFDRSxJQUFZLEVBQ1osVUFBc0I7SUFDdEIsOERBQThEO0lBQzlELEtBQTZCLEVBQzdCLE1BQWU7UUFFZixLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkseUJBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQUcsOENBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENB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
@@ -1,9 +1,15 @@
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
+ /**
6
+ * We can't directly use the Sequelize version we install in the package.json
7
+ * as the customer's version may be different.
8
+ * To ensure compatibility, we need to only import types from Sequelize,
9
+ * and use the customer sequelize version to deal with the data manipulation.
10
+ */
5
11
  protected sequelize: Sequelize;
6
- constructor(sequelize: Sequelize);
7
- protected createCollections(models: Sequelize['models']): void;
12
+ constructor(sequelize: Sequelize, logger?: Logger);
13
+ protected createCollections(models: Sequelize['models'], logger?: Logger): void;
8
14
  }
9
15
  //# sourceMappingURL=datasource.d.ts.map
@@ -6,23 +6,29 @@ 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
+ /**
12
+ * We can't directly use the Sequelize version we install in the package.json
13
+ * as the customer's version may be different.
14
+ * To ensure compatibility, we need to only import types from Sequelize,
15
+ * and use the customer sequelize version to deal with the data manipulation.
16
+ */
11
17
  this.sequelize = null;
12
18
  if (!sequelize)
13
19
  throw new Error('Invalid (null) Sequelize instance.');
14
20
  this.sequelize = sequelize;
15
- this.createCollections(this.sequelize.models);
21
+ this.createCollections(this.sequelize.models, logger);
16
22
  }
17
- createCollections(models) {
23
+ createCollections(models, logger) {
18
24
  Object.values(models)
19
25
  // avoid schema reordering
20
26
  .sort((modelA, modelB) => (modelA.name > modelB.name ? 1 : -1))
21
27
  .forEach(model => {
22
- const collection = new collection_1.default(model.name, this, model);
28
+ const collection = new collection_1.default(model.name, this, model, logger);
23
29
  this.addCollection(collection);
24
30
  });
25
31
  }
26
32
  }
27
33
  exports.default = SequelizeDataSource;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBQWlFO0FBRWpFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFHbEYsWUFBWSxTQUFvQjtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQUhBLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFLcEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQTJCO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLDBCQUEwQjthQUN6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQXRCRCxzQ0FzQkMifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQXlFO0FBR3pFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFTbEYsWUFBWSxTQUFvQixFQUFFLE1BQWU7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFUVjs7Ozs7V0FLRztRQUNPLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFLcEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUEyQixFQUFFLE1BQWU7UUFDdEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDbkIsMEJBQTBCO2FBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQTVCRCxzQ0E0QkMifQ==
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
+ import { DataSourceFactory } from '@forestadmin/datasource-toolkit';
2
+ import { Sequelize } from 'sequelize';
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 datasource_1 = require("./datasource");
10
- Object.defineProperty(exports, "SequelizeDataSource", { enumerable: true, get: function () { return __importDefault(datasource_1).default; } });
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQThEO0FBQXJELGtJQUFBLE9BQU8sT0FBdUI7QUFDdkMsMkNBQThEO0FBQXJELGtJQUFBLE9BQU8sT0FBdUI7QUFDdkMseURBQWtFO0FBQXpELGdJQUFBLE9BQU8sT0FBaUIifQ==
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=