adminforth 1.3.54-next.21 → 1.3.54-next.23

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.
Files changed (39) hide show
  1. package/dataConnectors/baseConnector.ts +0 -1
  2. package/dist/auth.js +42 -57
  3. package/dist/auth.js.map +1 -0
  4. package/dist/basePlugin.js +1 -1
  5. package/dist/basePlugin.js.map +1 -0
  6. package/dist/dataConnectors/baseConnector.js +108 -129
  7. package/dist/dataConnectors/baseConnector.js.map +1 -0
  8. package/dist/dataConnectors/clickhouse.js +126 -149
  9. package/dist/dataConnectors/clickhouse.js.map +1 -0
  10. package/dist/dataConnectors/mongo.js +75 -102
  11. package/dist/dataConnectors/mongo.js.map +1 -0
  12. package/dist/dataConnectors/postgres.js +118 -143
  13. package/dist/dataConnectors/postgres.js.map +1 -0
  14. package/dist/dataConnectors/sqlite.js +107 -130
  15. package/dist/dataConnectors/sqlite.js.map +1 -0
  16. package/dist/index.js +197 -218
  17. package/dist/index.js.map +1 -0
  18. package/dist/modules/codeInjector.js +471 -496
  19. package/dist/modules/codeInjector.js.map +1 -0
  20. package/dist/modules/configValidator.js +14 -23
  21. package/dist/modules/configValidator.js.map +1 -0
  22. package/dist/modules/operationalResource.js +50 -71
  23. package/dist/modules/operationalResource.js.map +1 -0
  24. package/dist/modules/restApi.js +104 -117
  25. package/dist/modules/restApi.js.map +1 -0
  26. package/dist/modules/styleGenerator.js +1 -1
  27. package/dist/modules/styleGenerator.js.map +1 -0
  28. package/dist/modules/styles.js +1 -1
  29. package/dist/modules/styles.js.map +1 -0
  30. package/dist/modules/utils.js +1 -1
  31. package/dist/modules/utils.js.map +1 -0
  32. package/dist/servers/express.js +30 -43
  33. package/dist/servers/express.js.map +1 -0
  34. package/dist/types/AdminForthConfig.js +1 -1
  35. package/dist/types/AdminForthConfig.js.map +1 -0
  36. package/dist/types/FrontendAPI.js +1 -1
  37. package/dist/types/FrontendAPI.js.map +1 -0
  38. package/package.json +1 -1
  39. package/tsconfig.json +4 -4
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { AdminForthDataTypes, AdminForthFilterOperators, AdminForthSortDirections } from '../types/AdminForthConfig.js';
11
2
  import AdminForthBaseConnector from './baseConnector.js';
12
3
  import dayjs from 'dayjs';
@@ -53,68 +44,66 @@ class ClickhouseConnector extends AdminForthBaseConnector {
53
44
  // }
54
45
  });
55
46
  }
56
- discoverFields(resource) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const tableName = resource.table;
59
- let rows;
60
- try {
61
- const q = yield this.client.query({
62
- query: `SELECT * FROM system.columns WHERE table = '${tableName}' and database = '${this.dbName}'`,
63
- format: 'JSONEachRow',
64
- });
65
- rows = yield q.json();
47
+ async discoverFields(resource) {
48
+ const tableName = resource.table;
49
+ let rows;
50
+ try {
51
+ const q = await this.client.query({
52
+ query: `SELECT * FROM system.columns WHERE table = '${tableName}' and database = '${this.dbName}'`,
53
+ format: 'JSONEachRow',
54
+ });
55
+ rows = await q.json();
56
+ }
57
+ catch (e) {
58
+ console.error(` 🛑Error connecting to datasource URL ${this.url}:`, e);
59
+ return null;
60
+ }
61
+ const fieldTypes = {};
62
+ rows.forEach((row) => {
63
+ const field = {};
64
+ const baseType = row.type;
65
+ if (baseType.startsWith('Int') || baseType.startsWith('UInt')) {
66
+ field.type = AdminForthDataTypes.INTEGER;
66
67
  }
67
- catch (e) {
68
- console.error(` 🛑Error connecting to datasource URL ${this.url}:`, e);
69
- return null;
68
+ else if (baseType === 'FixedString' || baseType === 'String') {
69
+ field.type = AdminForthDataTypes.STRING;
70
+ // TODO
71
+ // const length = baseType.match(/\d+/g);
72
+ // field.maxLength = length ? parseInt(length[0]) : null;
70
73
  }
71
- const fieldTypes = {};
72
- rows.forEach((row) => {
73
- const field = {};
74
- const baseType = row.type;
75
- if (baseType.startsWith('Int') || baseType.startsWith('UInt')) {
76
- field.type = AdminForthDataTypes.INTEGER;
77
- }
78
- else if (baseType === 'FixedString' || baseType === 'String') {
79
- field.type = AdminForthDataTypes.STRING;
80
- // TODO
81
- // const length = baseType.match(/\d+/g);
82
- // field.maxLength = length ? parseInt(length[0]) : null;
83
- }
84
- else if (baseType == 'UUID') {
85
- field.type = AdminForthDataTypes.STRING;
86
- }
87
- else if (baseType.startsWith('Decimal')) {
88
- field.type = AdminForthDataTypes.DECIMAL;
89
- const [precision, scale] = baseType.match(/\d+/g);
90
- field.precision = parseInt(precision);
91
- field.scale = parseInt(scale);
92
- }
93
- else if (baseType.startsWith('Float')) {
94
- field.type = AdminForthDataTypes.FLOAT;
95
- }
96
- else if (baseType == 'DateTime64' || baseType == 'DateTime' || baseType.startsWith('DateTime64(')) {
97
- field.type = AdminForthDataTypes.DATETIME;
98
- }
99
- else if (baseType == 'Date' || baseType == 'Date64') {
100
- field.type = AdminForthDataTypes.DATE;
101
- }
102
- else if (baseType == 'Boolean' || baseType == 'Bool') {
103
- field.type = AdminForthDataTypes.BOOLEAN;
104
- field._underlineType = 'boolean';
105
- }
106
- else {
107
- field.type = 'unknown';
108
- }
109
- field._underlineType = baseType;
110
- field._baseTypeDebug = baseType;
111
- field.required = row.notnull == 1;
112
- field.primaryKey = row.pk == 1;
113
- field.default = row.dflt_value;
114
- fieldTypes[row.name] = field;
115
- });
116
- return fieldTypes;
74
+ else if (baseType == 'UUID') {
75
+ field.type = AdminForthDataTypes.STRING;
76
+ }
77
+ else if (baseType.startsWith('Decimal')) {
78
+ field.type = AdminForthDataTypes.DECIMAL;
79
+ const [precision, scale] = baseType.match(/\d+/g);
80
+ field.precision = parseInt(precision);
81
+ field.scale = parseInt(scale);
82
+ }
83
+ else if (baseType.startsWith('Float')) {
84
+ field.type = AdminForthDataTypes.FLOAT;
85
+ }
86
+ else if (baseType == 'DateTime64' || baseType == 'DateTime' || baseType.startsWith('DateTime64(')) {
87
+ field.type = AdminForthDataTypes.DATETIME;
88
+ }
89
+ else if (baseType == 'Date' || baseType == 'Date64') {
90
+ field.type = AdminForthDataTypes.DATE;
91
+ }
92
+ else if (baseType == 'Boolean' || baseType == 'Bool') {
93
+ field.type = AdminForthDataTypes.BOOLEAN;
94
+ field._underlineType = 'boolean';
95
+ }
96
+ else {
97
+ field.type = 'unknown';
98
+ }
99
+ field._underlineType = baseType;
100
+ field._baseTypeDebug = baseType;
101
+ field.required = row.notnull == 1;
102
+ field.primaryKey = row.pk == 1;
103
+ field.default = row.dflt_value;
104
+ fieldTypes[row.name] = field;
117
105
  });
106
+ return fieldTypes;
118
107
  }
119
108
  getFieldValue(field, value) {
120
109
  if (field.type == AdminForthDataTypes.DATETIME) {
@@ -220,101 +209,89 @@ class ClickhouseConnector extends AdminForthBaseConnector {
220
209
  }) : [];
221
210
  return params;
222
211
  }
223
- getDataWithOriginalTypes(_a) {
224
- return __awaiter(this, arguments, void 0, function* ({ resource, limit, offset, sort, filters }) {
225
- console.log('getDataWithOriginalTypes', resource, limit, offset, sort, filters);
226
- const columns = resource.dataSourceColumns.map((col) => col.name).join(', ');
227
- const tableName = resource.table;
228
- const where = this.whereClause(resource, filters);
229
- const params = this.whereParams(filters);
230
- const orderBy = sort.length ? `ORDER BY ${sort.map((s) => `${s.field} ${this.SortDirectionsMap[s.direction]}`).join(', ')}` : '';
231
- const q = `SELECT ${columns} FROM ${tableName} ${where} ${orderBy} LIMIT {limit:Int} OFFSET {offset:Int}`;
232
- const d = Object.assign(Object.assign({}, params), { limit,
233
- offset });
234
- const stmt = yield this.client.query({
235
- query: q,
236
- format: 'JSONEachRow',
237
- query_params: d,
238
- });
239
- const rows = yield stmt.json();
240
- return rows.map((row) => {
241
- const newRow = {};
242
- for (const [key, value] of Object.entries(row)) {
243
- newRow[key] = value;
244
- }
245
- return newRow;
246
- });
212
+ async getDataWithOriginalTypes({ resource, limit, offset, sort, filters }) {
213
+ console.log('getDataWithOriginalTypes', resource, limit, offset, sort, filters);
214
+ const columns = resource.dataSourceColumns.map((col) => col.name).join(', ');
215
+ const tableName = resource.table;
216
+ const where = this.whereClause(resource, filters);
217
+ const params = this.whereParams(filters);
218
+ const orderBy = sort.length ? `ORDER BY ${sort.map((s) => `${s.field} ${this.SortDirectionsMap[s.direction]}`).join(', ')}` : '';
219
+ const q = `SELECT ${columns} FROM ${tableName} ${where} ${orderBy} LIMIT {limit:Int} OFFSET {offset:Int}`;
220
+ const d = Object.assign(Object.assign({}, params), { limit,
221
+ offset });
222
+ const stmt = await this.client.query({
223
+ query: q,
224
+ format: 'JSONEachRow',
225
+ query_params: d,
247
226
  });
248
- }
249
- getCount(_a) {
250
- return __awaiter(this, arguments, void 0, function* ({ resource, filters, }) {
251
- const tableName = resource.table;
252
- const where = this.whereClause(resource, filters);
253
- const d = this.whereParams(filters);
254
- const countQ = yield this.client.query({
255
- query: `SELECT COUNT(*) as count FROM ${tableName} ${where}`,
256
- format: 'JSONEachRow',
257
- query_params: d,
258
- });
259
- const countResp = yield countQ.json();
260
- return +countResp[0]['count'];
227
+ const rows = await stmt.json();
228
+ return rows.map((row) => {
229
+ const newRow = {};
230
+ for (const [key, value] of Object.entries(row)) {
231
+ newRow[key] = value;
232
+ }
233
+ return newRow;
261
234
  });
262
235
  }
263
- getMinMaxForColumnsWithOriginalTypes(_a) {
264
- return __awaiter(this, arguments, void 0, function* ({ resource, columns }) {
265
- const tableName = resource.table;
266
- const result = {};
267
- yield Promise.all(columns.map((col) => __awaiter(this, void 0, void 0, function* () {
268
- const stmt = yield this.client.query({
269
- query: `SELECT MIN(${col.name}) as min, MAX(${col.name}) as max FROM ${tableName}`,
270
- format: 'JSONEachRow',
271
- });
272
- const rows = yield stmt.json();
273
- result[col.name] = {
274
- min: rows[0].min,
275
- max: rows[0].max,
276
- };
277
- })));
278
- return result;
236
+ async getCount({ resource, filters, }) {
237
+ const tableName = resource.table;
238
+ const where = this.whereClause(resource, filters);
239
+ const d = this.whereParams(filters);
240
+ const countQ = await this.client.query({
241
+ query: `SELECT COUNT(*) as count FROM ${tableName} ${where}`,
242
+ format: 'JSONEachRow',
243
+ query_params: d,
279
244
  });
245
+ const countResp = await countQ.json();
246
+ return +countResp[0]['count'];
280
247
  }
281
- createRecordOriginalValues(_a) {
282
- return __awaiter(this, arguments, void 0, function* ({ resource, record }) {
283
- const tableName = resource.table;
284
- const columns = Object.keys(record);
285
- yield this.client.insert({
286
- database: this.dbName,
287
- table: tableName,
288
- columns: columns,
289
- values: [Object.values(record)],
248
+ async getMinMaxForColumnsWithOriginalTypes({ resource, columns }) {
249
+ const tableName = resource.table;
250
+ const result = {};
251
+ await Promise.all(columns.map(async (col) => {
252
+ const stmt = await this.client.query({
253
+ query: `SELECT MIN(${col.name}) as min, MAX(${col.name}) as max FROM ${tableName}`,
254
+ format: 'JSONEachRow',
290
255
  });
256
+ const rows = await stmt.json();
257
+ result[col.name] = {
258
+ min: rows[0].min,
259
+ max: rows[0].max,
260
+ };
261
+ }));
262
+ return result;
263
+ }
264
+ async createRecordOriginalValues({ resource, record }) {
265
+ const tableName = resource.table;
266
+ const columns = Object.keys(record);
267
+ await this.client.insert({
268
+ database: this.dbName,
269
+ table: tableName,
270
+ columns: columns,
271
+ values: [Object.values(record)],
291
272
  });
292
273
  }
293
- updateRecordOriginalValues(_a) {
294
- return __awaiter(this, arguments, void 0, function* ({ resource, recordId, newValues }) {
295
- const columnsWithPlaceholders = Object.keys(newValues).map((col) => {
296
- return `${col} = {${col}:${resource.dataSourceColumns.find((c) => c.name == col)._underlineType}}`;
297
- });
298
- yield this.client.command({
299
- query: `ALTER TABLE ${this.dbName}.${resource.table} UPDATE ${columnsWithPlaceholders.join(', ')} WHERE ${this.getPrimaryKey(resource)} = {recordId:${resource.dataSourceColumns.find((c) => c.primaryKey)._underlineType}}`,
300
- query_params: Object.assign(Object.assign({}, newValues), { recordId }),
301
- });
274
+ async updateRecordOriginalValues({ resource, recordId, newValues }) {
275
+ const columnsWithPlaceholders = Object.keys(newValues).map((col) => {
276
+ return `${col} = {${col}:${resource.dataSourceColumns.find((c) => c.name == col)._underlineType}}`;
277
+ });
278
+ await this.client.command({
279
+ query: `ALTER TABLE ${this.dbName}.${resource.table} UPDATE ${columnsWithPlaceholders.join(', ')} WHERE ${this.getPrimaryKey(resource)} = {recordId:${resource.dataSourceColumns.find((c) => c.primaryKey)._underlineType}}`,
280
+ query_params: Object.assign(Object.assign({}, newValues), { recordId }),
302
281
  });
303
282
  }
304
- deleteRecord(_a) {
305
- return __awaiter(this, arguments, void 0, function* ({ resource, recordId }) {
306
- const pkColumn = resource.dataSourceColumns.find((col) => col.primaryKey);
307
- const res = yield this.client.command({
308
- query: `ALTER TABLE ${this.dbName}.${resource.table} DELETE WHERE ${pkColumn.name} = {recordId:${pkColumn._underlineType}}`,
309
- query_params: { recordId },
310
- });
311
- // todo test what is in res
312
- return res;
283
+ async deleteRecord({ resource, recordId }) {
284
+ const pkColumn = resource.dataSourceColumns.find((col) => col.primaryKey);
285
+ const res = await this.client.command({
286
+ query: `ALTER TABLE ${this.dbName}.${resource.table} DELETE WHERE ${pkColumn.name} = {recordId:${pkColumn._underlineType}}`,
287
+ query_params: { recordId },
313
288
  });
289
+ // todo test what is in res
290
+ return res;
314
291
  }
315
292
  close() {
316
293
  this.client.disconnect();
317
294
  }
318
295
  }
319
296
  export default ClickhouseConnector;
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2tob3VzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RhdGFDb25uZWN0b3JzL2NsaWNraG91c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFnRixNQUFNLDhCQUE4QixDQUFDO0FBQ3RNLE9BQU8sdUJBQXVCLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUtqRCxNQUFNLG1CQUFvQixTQUFRLHVCQUF1QjtJQU1yRDs7O09BR0c7SUFDSCxZQUFZLEVBQUUsR0FBRyxFQUFtQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQThJVixpQkFBWSxHQUFHO1lBQ2IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHO1lBQ25DLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNwQyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUc7WUFDbkMsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHO1lBQ25DLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSTtZQUNyQyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUk7WUFDckMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNO1lBQ3hDLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztZQUMxQyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDcEMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRO1NBQzFDLENBQUM7UUFFRixzQkFBaUIsR0FBRztZQUNsQixDQUFDLHdCQUF3QixDQUFDLEdB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
297
+ //# sourceMappingURL=clickhouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickhouse.js","sourceRoot":"","sources":["../../dataConnectors/clickhouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,wBAAwB,EAAgF,MAAM,8BAA8B,CAAC;AACtM,OAAO,uBAAuB,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKjD,MAAM,mBAAoB,SAAQ,uBAAuB;IAMrD;;;OAGG;IACH,YAAY,EAAE,GAAG,EAAmB;QAClC,KAAK,EAAE,CAAC;QA8IV,iBAAY,GAAG;YACb,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,GAAG;YACnC,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,IAAI;YACpC,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,GAAG;YACnC,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,GAAG;YACnC,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,IAAI;YACrC,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,IAAI;YACrC,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM;YACxC,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,OAAO;YAC1C,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE,IAAI;YACpC,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,QAAQ;SAC1C,CAAC;QAEF,sBAAiB,GAAG;YAClB,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK;YACrC,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM;SACxC,CAAC;QA7JA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAAA,CAAC;QAChB,yBAAyB;QACzB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC;YAC5C,mBAAmB,EAAE;gBACnB,4EAA4E;gBAC5E,sBAAsB,EAAE,aAAa;gBAErC,sHAAsH;gBACtH,oDAAoD;gBACpD,yEAAyE;gBACzE,iBAAiB,EAAE,CAAC;aACrB;YACD,QAAQ;YACR,qCAAqC;YACrC,IAAI;SACL,CAAC,CAAC;IAEL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAA4B;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAEjC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,KAAK,EAAE,+CAA+C,SAAS,qBAAqB,IAAI,CAAC,MAAM,GAAG;gBAClG,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,KAAK,GAAQ,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;YAC3C,CAAC;iBAAM,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/D,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBACxC,OAAO;gBACP,yCAAyC;gBACzC,yDAAyD;YAC3D,CAAC;iBAAM,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC1C,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBACzC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACtC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC;YACzC,CAAC;iBAAM,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpG,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC;YAC5C,CAAC;iBAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;YACxC,CAAC;iBAAM,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACvD,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBACzC,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;YACxB,CAAC;YACD,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;YAChC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;YAChC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,aAAa,CAAC,KAA+B,EAAE,KAAU;QACvD,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,CAAC;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;mBAC/C,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;mBACzC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,cAAc,4GAA4G,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1M,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChG,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,EAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC,OAAO,EAAE,EAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,8CAA8C,KAAK,CAAC,cAAc,6BAA6B,CAAC,CAAC;YACjH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa,CAAC,KAA+B,EAAE,KAAU;QACvD,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtF,qDAAqD;gBACrD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;iBAAM,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;mBACjD,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC;mBACzC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpD,qDAAqD;gBACrD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAClD,yCAAyC;YACzC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,mDAAmD,KAAK,CAAC,cAAc,6BAA6B,CAAC,CAAC;YACtH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAoBD,WAAW,CACP,QAA4B,EAC5B,OAA6E;QAE/E,OAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7E,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC;YACrD,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,GAAG,EAAE,CAAC;gBAC9F,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IACjD,MAAM,CAAC,cACT,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,CAAC;YAED,OAAO,GAAG,KAAK,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAA;QAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;IAED,WAAW,CACP,OAA6E;QAE/E,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,2BAA2B;YAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YAElB,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,KAAK,EAAE,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,CAAC;iBAAM,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,IAAI,yBAAyB,CAAC,GAAG,EAAE,CAAC;gBACrG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAER,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAMtE;QACC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAGjI,MAAM,CAAC,GAAG,UAAU,OAAO,SAAS,SAAS,IAAI,KAAK,IAAI,OAAO,wCAAwC,CAAC;QAC1G,MAAM,CAAC,mCACF,MAAM,KACT,KAAK;YACL,MAAM,GACP,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EACb,QAAQ,EACR,OAAO,GAIR;QACC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACrC,KAAK,EAAE,iCAAiC,SAAS,IAAI,KAAK,EAAE;YAC5D,MAAM,EAAE,aAAa;YACrB,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACrC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,oCAAoC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAyE;QACrI,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACnC,KAAK,EAAE,cAAc,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,IAAI,iBAAiB,SAAS,EAAE;gBAClF,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;gBACjB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;gBAChB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;aACjB,CAAC;QAEJ,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAiD;QAClG,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAmE;QACjI,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,OAAO,GAAG,GAAG,OAAO,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,cAAc,GAAG,CAAA;QACpG,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACvB;YACE,KAAK,EAAE,eAAe,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,WAAW,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,GAAG;YAC5N,YAAY,kCAAO,SAAS,KAAE,QAAQ,GAAE;SAC3C,CACA,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAmD;QACxF,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACnC;YACE,KAAK,EAAE,eAAe,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,iBACjD,QAAQ,CAAC,IACX,gBAAgB,QAAQ,CAAC,cAAc,GAAG;YAC1C,YAAY,EAAE,EAAE,QAAQ,EAAE;SAC3B,CACF,CAAC;QACF,2BAA2B;QAC3B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACJ;AAED,eAAe,mBAAmB,CAAC"}
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import dayjs from 'dayjs';
11
2
  import { MongoClient } from 'mongodb';
12
3
  import { AdminForthDataTypes, AdminForthFilterOperators, AdminForthSortDirections } from '../types/AdminForthConfig.js';
@@ -31,9 +22,9 @@ class MongoConnector extends AdminForthBaseConnector {
31
22
  [AdminForthSortDirections.desc]: -1,
32
23
  };
33
24
  this.db = new MongoClient(url);
34
- (() => __awaiter(this, void 0, void 0, function* () {
25
+ (async () => {
35
26
  try {
36
- yield this.db.connect();
27
+ await this.db.connect();
37
28
  this.db.on('error', (err) => {
38
29
  console.log('Mongo error: ', err.message);
39
30
  });
@@ -42,24 +33,22 @@ class MongoConnector extends AdminForthBaseConnector {
42
33
  catch (e) {
43
34
  console.error('ERROR: Failed to connect to Mongo', e);
44
35
  }
45
- }))();
36
+ })();
46
37
  }
47
- discoverFields(resource) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- return resource.columns.filter((col) => !col.virtual).reduce((acc, col) => {
50
- if (!col.type) {
51
- throw new Error(`Type is not defined for column ${col.name} in resource ${resource.table}`);
52
- }
53
- acc[col.name] = {
54
- name: col.name,
55
- type: col.type,
56
- primaryKey: col.primaryKey,
57
- virtual: col.virtual,
58
- _underlineType: col._underlineType,
59
- };
60
- return acc;
61
- }, {});
62
- });
38
+ async discoverFields(resource) {
39
+ return resource.columns.filter((col) => !col.virtual).reduce((acc, col) => {
40
+ if (!col.type) {
41
+ throw new Error(`Type is not defined for column ${col.name} in resource ${resource.table}`);
42
+ }
43
+ acc[col.name] = {
44
+ name: col.name,
45
+ type: col.type,
46
+ primaryKey: col.primaryKey,
47
+ virtual: col.virtual,
48
+ _underlineType: col._underlineType,
49
+ };
50
+ return acc;
51
+ }, {});
63
52
  }
64
53
  getPrimaryKey(resource) {
65
54
  for (const col of resource.dataSourceColumns) {
@@ -108,88 +97,72 @@ class MongoConnector extends AdminForthBaseConnector {
108
97
  }
109
98
  return value;
110
99
  }
111
- genQuery(_a) {
112
- return __awaiter(this, arguments, void 0, function* ({ filters }) {
113
- const query = {};
114
- for (const filter of filters) {
115
- query[filter.field] = this.OperatorsMap[filter.operator](filter.value);
116
- }
117
- return query;
118
- });
100
+ async genQuery({ filters }) {
101
+ const query = {};
102
+ for (const filter of filters) {
103
+ query[filter.field] = this.OperatorsMap[filter.operator](filter.value);
104
+ }
105
+ return query;
119
106
  }
120
- getDataWithOriginalTypes(_a) {
121
- return __awaiter(this, arguments, void 0, function* ({ resource, limit, offset, sort, filters }) {
122
- // const columns = resource.dataSourceColumns.filter(c=> !c.virtual).map((col) => col.name).join(', ');
123
- const tableName = resource.table;
124
- const collection = this.db.db().collection(tableName);
125
- const query = yield this.genQuery({ filters });
126
- const sortArray = sort.map((s) => {
127
- return [s.field, this.SortDirectionsMap[s.direction]];
128
- });
129
- const result = yield collection.find(query)
130
- .sort(sortArray)
131
- .skip(offset)
132
- .limit(limit)
133
- .toArray();
134
- return result;
107
+ async getDataWithOriginalTypes({ resource, limit, offset, sort, filters }) {
108
+ // const columns = resource.dataSourceColumns.filter(c=> !c.virtual).map((col) => col.name).join(', ');
109
+ const tableName = resource.table;
110
+ const collection = this.db.db().collection(tableName);
111
+ const query = await this.genQuery({ filters });
112
+ const sortArray = sort.map((s) => {
113
+ return [s.field, this.SortDirectionsMap[s.direction]];
135
114
  });
115
+ const result = await collection.find(query)
116
+ .sort(sortArray)
117
+ .skip(offset)
118
+ .limit(limit)
119
+ .toArray();
120
+ return result;
136
121
  }
137
- getCount(_a) {
138
- return __awaiter(this, arguments, void 0, function* ({ resource, filters }) {
139
- const collection = this.db.db().collection(resource.table);
140
- const query = {};
141
- for (const filter of filters) {
142
- query[filter.field] = this.OperatorsMap[filter.operator](filter.value);
143
- }
144
- return yield collection.countDocuments(query);
145
- });
122
+ async getCount({ resource, filters }) {
123
+ const collection = this.db.db().collection(resource.table);
124
+ const query = {};
125
+ for (const filter of filters) {
126
+ query[filter.field] = this.OperatorsMap[filter.operator](filter.value);
127
+ }
128
+ return await collection.countDocuments(query);
146
129
  }
147
- getMinMaxForColumnsWithOriginalTypes(_a) {
148
- return __awaiter(this, arguments, void 0, function* ({ resource, columns }) {
149
- const tableName = resource.table;
150
- const collection = this.db.db().collection(tableName);
151
- const result = {};
152
- for (const column of columns) {
153
- result[column] = yield collection
154
- .aggregate([
155
- { $group: { _id: null, min: { $min: `$${column}` }, max: { $max: `$${column}` } } },
156
- ])
157
- .toArray();
158
- }
159
- return result;
160
- });
130
+ async getMinMaxForColumnsWithOriginalTypes({ resource, columns }) {
131
+ const tableName = resource.table;
132
+ const collection = this.db.db().collection(tableName);
133
+ const result = {};
134
+ for (const column of columns) {
135
+ result[column] = await collection
136
+ .aggregate([
137
+ { $group: { _id: null, min: { $min: `$${column}` }, max: { $max: `$${column}` } } },
138
+ ])
139
+ .toArray();
140
+ }
141
+ return result;
161
142
  }
162
- createRecordOriginalValues(_a) {
163
- return __awaiter(this, arguments, void 0, function* ({ resource, record }) {
164
- const tableName = resource.table;
165
- const collection = this.db.db().collection(tableName);
166
- const columns = Object.keys(record);
167
- const newRecord = {};
168
- for (const colName of columns) {
169
- newRecord[colName] = record[colName];
170
- }
171
- yield collection.insertOne(newRecord);
172
- });
143
+ async createRecordOriginalValues({ resource, record }) {
144
+ const tableName = resource.table;
145
+ const collection = this.db.db().collection(tableName);
146
+ const columns = Object.keys(record);
147
+ const newRecord = {};
148
+ for (const colName of columns) {
149
+ newRecord[colName] = record[colName];
150
+ }
151
+ await collection.insertOne(newRecord);
173
152
  }
174
- updateRecordOriginalValues(_a) {
175
- return __awaiter(this, arguments, void 0, function* ({ resource, recordId, newValues }) {
176
- const collection = this.db.db().collection(resource.table);
177
- yield collection.updateOne({ [this.getPrimaryKey(resource)]: recordId }, { $set: newValues });
178
- });
153
+ async updateRecordOriginalValues({ resource, recordId, newValues }) {
154
+ const collection = this.db.db().collection(resource.table);
155
+ await collection.updateOne({ [this.getPrimaryKey(resource)]: recordId }, { $set: newValues });
179
156
  }
180
- deleteRecord(_a) {
181
- return __awaiter(this, arguments, void 0, function* ({ resource, recordId }) {
182
- const primaryKey = this.getPrimaryKey(resource);
183
- const collection = this.db.db().collection(resource.table);
184
- const res = yield collection.deleteOne({ [primaryKey]: recordId });
185
- return res.deletedCount > 0;
186
- });
157
+ async deleteRecord({ resource, recordId }) {
158
+ const primaryKey = this.getPrimaryKey(resource);
159
+ const collection = this.db.db().collection(resource.table);
160
+ const res = await collection.deleteOne({ [primaryKey]: recordId });
161
+ return res.deletedCount > 0;
187
162
  }
188
- close() {
189
- return __awaiter(this, void 0, void 0, function* () {
190
- yield this.db.close();
191
- });
163
+ async close() {
164
+ await this.db.close();
192
165
  }
193
166
  }
194
167
  export default MongoConnector;
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kYXRhQ29ubmVjdG9ycy9tb25nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQ3pCLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyx1QkFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RCxNQUFNLGNBQWUsU0FBUSx1QkFBdUI7SUFHaEQsWUFBWSxFQUFFLEdBQUcsRUFBbUI7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFlWixpQkFBWSxHQUFHO1lBQ1gsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztZQUNoRCxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzNELENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDM0QsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUMzRCxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzdELENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVB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
168
+ //# sourceMappingURL=mongo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../dataConnectors/mongo.ts"],"names":[],"mappings":"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"}