@or-sdk/pgsql 1.0.2 → 1.0.3-beta.1917.0

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 (60) hide show
  1. package/dist/cjs/Pgsql.js +87 -35
  2. package/dist/cjs/Pgsql.js.map +1 -1
  3. package/dist/cjs/utils/index.js +1 -13
  4. package/dist/cjs/utils/index.js.map +1 -1
  5. package/dist/esm/Pgsql.js +78 -28
  6. package/dist/esm/Pgsql.js.map +1 -1
  7. package/dist/esm/utils/index.js +0 -6
  8. package/dist/esm/utils/index.js.map +1 -1
  9. package/dist/types/Pgsql.d.ts +25 -16
  10. package/dist/types/Pgsql.d.ts.map +1 -1
  11. package/dist/types/types.d.ts +9 -4
  12. package/dist/types/types.d.ts.map +1 -1
  13. package/dist/types/utils/index.d.ts +0 -6
  14. package/dist/types/utils/index.d.ts.map +1 -1
  15. package/package.json +2 -3
  16. package/src/Pgsql.ts +90 -45
  17. package/src/types.ts +9 -8
  18. package/src/utils/index.ts +0 -6
  19. package/dist/cjs/utils/encodeValue.js +0 -17
  20. package/dist/cjs/utils/encodeValue.js.map +0 -1
  21. package/dist/cjs/utils/extractDatabaseNames.js +0 -10
  22. package/dist/cjs/utils/extractDatabaseNames.js.map +0 -1
  23. package/dist/cjs/utils/getDeleteRowsQuery.js +0 -9
  24. package/dist/cjs/utils/getDeleteRowsQuery.js.map +0 -1
  25. package/dist/cjs/utils/getEditRowQuery.js +0 -10
  26. package/dist/cjs/utils/getEditRowQuery.js.map +0 -1
  27. package/dist/cjs/utils/getInsertKeys.js +0 -9
  28. package/dist/cjs/utils/getInsertKeys.js.map +0 -1
  29. package/dist/cjs/utils/getInsertQueries.js +0 -18
  30. package/dist/cjs/utils/getInsertQueries.js.map +0 -1
  31. package/dist/esm/utils/encodeValue.js +0 -12
  32. package/dist/esm/utils/encodeValue.js.map +0 -1
  33. package/dist/esm/utils/extractDatabaseNames.js +0 -5
  34. package/dist/esm/utils/extractDatabaseNames.js.map +0 -1
  35. package/dist/esm/utils/getDeleteRowsQuery.js +0 -8
  36. package/dist/esm/utils/getDeleteRowsQuery.js.map +0 -1
  37. package/dist/esm/utils/getEditRowQuery.js +0 -10
  38. package/dist/esm/utils/getEditRowQuery.js.map +0 -1
  39. package/dist/esm/utils/getInsertKeys.js +0 -7
  40. package/dist/esm/utils/getInsertKeys.js.map +0 -1
  41. package/dist/esm/utils/getInsertQueries.js +0 -14
  42. package/dist/esm/utils/getInsertQueries.js.map +0 -1
  43. package/dist/types/utils/encodeValue.d.ts +0 -4
  44. package/dist/types/utils/encodeValue.d.ts.map +0 -1
  45. package/dist/types/utils/extractDatabaseNames.d.ts +0 -4
  46. package/dist/types/utils/extractDatabaseNames.d.ts.map +0 -1
  47. package/dist/types/utils/getDeleteRowsQuery.d.ts +0 -4
  48. package/dist/types/utils/getDeleteRowsQuery.d.ts.map +0 -1
  49. package/dist/types/utils/getEditRowQuery.d.ts +0 -4
  50. package/dist/types/utils/getEditRowQuery.d.ts.map +0 -1
  51. package/dist/types/utils/getInsertKeys.d.ts +0 -4
  52. package/dist/types/utils/getInsertKeys.d.ts.map +0 -1
  53. package/dist/types/utils/getInsertQueries.d.ts +0 -4
  54. package/dist/types/utils/getInsertQueries.d.ts.map +0 -1
  55. package/src/utils/encodeValue.ts +0 -11
  56. package/src/utils/extractDatabaseNames.ts +0 -7
  57. package/src/utils/getDeleteRowsQuery.ts +0 -10
  58. package/src/utils/getEditRowQuery.ts +0 -12
  59. package/src/utils/getInsertKeys.ts +0 -9
  60. package/src/utils/getInsertQueries.ts +0 -18
package/src/Pgsql.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import _ from 'lodash';
1
2
  import { Base, CalApiParams, List, MakeApiUrlData, makeList } from '@or-sdk/base';
2
3
  import { LIST_SCHEMAS_QUERY, SERVICE_KEY } from './constants';
3
4
  import {
@@ -14,20 +15,16 @@ import {
14
15
  createSchemaQuery,
15
16
  getAddColumnsQuery,
16
17
  getCreateTableQuery,
17
- getDeleteRowsQuery,
18
18
  getDropSchemaQuery,
19
- getDropTableQuery, getEditRowQuery, getGenerateTableSchemaQuery,
19
+ getDropTableQuery, getGenerateTableSchemaQuery,
20
20
  getGetPrimaryKeysQuery,
21
- getInsertQueries,
22
- getListTablesQuery, getSelectAllCountQuery, getSelectAllQuery,
21
+ getListTablesQuery, getSelectAllCountQuery, getSelectAllQuery, splitPrimaryKeys,
23
22
  } from './utils';
24
23
 
25
24
 
26
25
  export class Pgsql extends Base {
27
- private isExternal?: boolean;
28
-
29
26
  constructor(params: PgsqlConfig) {
30
- const { token, discoveryUrl, accountId, pgsqlUrl, version = 'master', isExternal } = params;
27
+ const { token, discoveryUrl, accountId, pgsqlUrl, version = 'master' } = params;
31
28
  super({
32
29
  token,
33
30
  discoveryUrl,
@@ -36,7 +33,6 @@ export class Pgsql extends Base {
36
33
  serviceUrl: pgsqlUrl,
37
34
  feature: version,
38
35
  });
39
- this.isExternal = isExternal;
40
36
  }
41
37
 
42
38
  /**
@@ -56,7 +52,7 @@ export class Pgsql extends Base {
56
52
  (params.params as any).feature = this.feature;
57
53
  }
58
54
 
59
- return this.callApi<T>(params);
55
+ return this.callApiV2<T>(params);
60
56
  }
61
57
 
62
58
  makeApiUrl(data: MakeApiUrlData): string {
@@ -74,13 +70,13 @@ export class Pgsql extends Base {
74
70
  * });
75
71
  * ```
76
72
  */
77
- public async executeQuery<T>({ query, params, database }: ExecuteQueryArgs): Promise<ExecuteQueryResponse<T>> {
73
+ public async executeQuery<T>({ query, params, database, isExternal }: ExecuteQueryArgs): Promise<ExecuteQueryResponse<T>> {
78
74
  return this.makeRequest<ExecuteQueryResponse<T>>({
79
75
  data: {
80
76
  query,
81
77
  params,
82
78
  database,
83
- isExternal: this.isExternal,
79
+ isExternal,
84
80
  },
85
81
  method: 'POST',
86
82
  route: 'query',
@@ -92,6 +88,7 @@ export class Pgsql extends Base {
92
88
  * ```typescript
93
89
  * const databaseList = await pgsql.listDatabases();
94
90
  * ```
91
+ * @returns {Array} database names
95
92
  */
96
93
  public async listDatabases(): Promise<List<DatabaseItem>> {
97
94
  const { databases } = await this.makeRequest<ListDatabasesResponse>({
@@ -127,13 +124,12 @@ export class Pgsql extends Base {
127
124
  * const result = await pgsql.getDatabaseInfo({ database: 'db-name' });
128
125
  * ```
129
126
  */
130
- // TODO: uncomment or replace route?
131
- // public async getDatabaseInfo({ database }: { database: string; }): Promise<unknown> {
132
- // return this.callApi<unknown>({
133
- // method: 'GET',
134
- // route: `databases/${encodeURIComponent(database)}`
135
- // })
136
- // }
127
+ public async getDatabaseInfo({ database }: { database: string; }): Promise<unknown> {
128
+ return this.callApiV2<unknown>({
129
+ method: 'GET',
130
+ route: `databases/${encodeURIComponent(database)}`,
131
+ });
132
+ }
137
133
 
138
134
  /**
139
135
  * Drop database
@@ -158,10 +154,11 @@ export class Pgsql extends Base {
158
154
  * const result = await pgsql.listTables({ database: 'db-name', schema: 'schema-name' });
159
155
  * ```
160
156
  */
161
- public async listTables({ database, schema = 'public' }: { database: string; schema?: string; }): Promise<List<string>> {
157
+ public async listTables({ database, schema, isExternal }: { database: string; schema: string; isExternal: boolean; }): Promise<List<string>> {
162
158
  const { rows } = await this.executeQuery<{ table_name: string; }>({
163
159
  query: getListTablesQuery(schema),
164
160
  database,
161
+ isExternal,
165
162
  });
166
163
  return makeList<string>(rows.map(x => x.table_name));
167
164
  }
@@ -172,10 +169,11 @@ export class Pgsql extends Base {
172
169
  * const result = await pgsql.listSchemas({ database: 'db-name' });
173
170
  * ```
174
171
  */
175
- public async listSchemas({ database }: { database: string; }): Promise<List<string>> {
172
+ public async listSchemas({ database, isExternal }: { database: string; isExternal: boolean; }): Promise<List<string>> {
176
173
  const { rows } = await this.executeQuery<{ schema_name: string; }>({
177
174
  query: LIST_SCHEMAS_QUERY,
178
175
  database,
176
+ isExternal,
179
177
  });
180
178
  return makeList<string>(rows.map(x => x.schema_name));
181
179
  }
@@ -186,10 +184,11 @@ export class Pgsql extends Base {
186
184
  * const result = await pgsql.createSchema({ database: 'db-name', schema: 'schema-name' });
187
185
  * ```
188
186
  */
189
- public async createSchema({ database, schema }: { database: string; schema: string; }): Promise<ExecuteQueryResponse<void>> {
187
+ public async createSchema({ database, schema, isExternal }: { database: string; schema: string; isExternal: boolean; }): Promise<ExecuteQueryResponse<void>> {
190
188
  return this.executeQuery<void>({
191
189
  query: createSchemaQuery(schema),
192
190
  database,
191
+ isExternal,
193
192
  });
194
193
  }
195
194
 
@@ -199,10 +198,11 @@ export class Pgsql extends Base {
199
198
  * const result = await pgsql.dropSchema({ database: 'db-name', schema: 'schema-name' });
200
199
  * ```
201
200
  */
202
- public async dropSchema({ database, schema }: { database: string; schema: string; }): Promise<ExecuteQueryResponse<void>> {
201
+ public async dropSchema({ database, schema, isExternal }: { database: string; schema: string; isExternal: boolean; }): Promise<ExecuteQueryResponse<void>> {
203
202
  return this.executeQuery<void>({
204
203
  query: getDropSchemaQuery(schema),
205
204
  database,
205
+ isExternal,
206
206
  });
207
207
  }
208
208
 
@@ -212,10 +212,11 @@ export class Pgsql extends Base {
212
212
  * const result = await pgsql.dropSchema({ database: 'db-name', schema: 'schema-name', table: 'table-name' });
213
213
  * ```
214
214
  */
215
- public async dropTable({ database, schema, table }: { database: string; schema: string; table: string; }): Promise<ExecuteQueryResponse<void>> {
215
+ public async dropTable({ database, schema, table, isExternal }: { database: string; schema: string; table: string; isExternal: boolean; }): Promise<ExecuteQueryResponse<void>> {
216
216
  return this.executeQuery<void>({
217
217
  query: getDropTableQuery(schema, table),
218
218
  database,
219
+ isExternal,
219
220
  });
220
221
  }
221
222
 
@@ -234,10 +235,11 @@ export class Pgsql extends Base {
234
235
  * });
235
236
  * ```
236
237
  */
237
- public async createTable({ database, schema, table, columns, primaryKey }: CreateTableArgs): Promise<ExecuteQueryResponse<void>> {
238
+ public async createTable({ database, schema, table, columns, primaryKey, isExternal }: CreateTableArgs): Promise<ExecuteQueryResponse<void>> {
238
239
  return this.executeQuery<void>({
239
240
  query: getCreateTableQuery(schema, table, columns, primaryKey),
240
241
  database,
242
+ isExternal,
241
243
  });
242
244
  }
243
245
 
@@ -255,10 +257,11 @@ export class Pgsql extends Base {
255
257
  * });
256
258
  * ```
257
259
  */
258
- public async addColumns({ database, schema, table, columns }: AddColumnsArgs): Promise<ExecuteQueryResponse<void>> {
260
+ public async addColumns({ database, schema, table, columns, isExternal }: AddColumnsArgs): Promise<ExecuteQueryResponse<void>> {
259
261
  return this.executeQuery<void>({
260
262
  query: getAddColumnsQuery(schema, table, columns),
261
263
  database,
264
+ isExternal,
262
265
  });
263
266
  }
264
267
 
@@ -277,20 +280,28 @@ export class Pgsql extends Base {
277
280
  * });
278
281
  * ```
279
282
  */
280
- public async insert({ database, schema, table, rows, chunkSize = 300, context }: InsertArgs): Promise<ExecuteQueryResponse<void>[]> {
283
+ public async insert({ database, schema, table, rows, chunkSize = 300, context, isExternal }: InsertArgs): Promise<ExecuteQueryResponse<unknown>[]> {
284
+ const params: any[] = [];
285
+ const addParam = (val: any) => {params.push(val);return `$${params.length}`;};
281
286
  const res = [];
282
-
283
- const queries = getInsertQueries(schema, table, rows, chunkSize);
284
-
285
- for (const [index, query] of Array.from(queries.entries())) {
286
- res.push(await this.executeQuery<void>({
287
+ if (!_.isArray(rows)) rows = [rows];
288
+ const allKeys = {};
289
+ rows.forEach(x => Object.assign(allKeys, x));
290
+ const keys = Object.keys(allKeys);
291
+ const stringifyRow = (row: any) => `${keys.map(key => addParam(row[key])).join(', ')}`;
292
+
293
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
294
+ // @ts-ignore
295
+ for (const [index, chunk] of _.chunk(rows, chunkSize).entries()) {
296
+ const query = `insert into ${schema}.${table} (${keys.join(', ')})
297
+ values (${chunk.map(stringifyRow).join('), (')});`;
298
+ res.push(await this.executeQuery({
287
299
  query,
288
300
  database,
301
+ isExternal,
302
+ params,
289
303
  }));
290
-
291
- if (context) {
292
- context.progress = Math.min((index + 1) / (rows.length / Math.min(chunkSize, rows.length)), 1) * 100;
293
- }
304
+ if (context) context.progress = (index + 1) / (rows.length / chunkSize) * 100;
294
305
  }
295
306
 
296
307
  return res;
@@ -309,16 +320,17 @@ export class Pgsql extends Base {
309
320
  * });
310
321
  * ```
311
322
  */
312
- public async selectAll({ database, query, context, chunkSize = 1000, offset = 0, limit }: SelectAllArgs): Promise<List<Row>> {
323
+ public async selectAll({ database, query, context, chunkSize = 1000, offset = 0, limit, isExternal, params }: SelectAllArgs): Promise<List<Row>> {
313
324
  let count: number, rows, result: Row[] = [];
314
- if (limit && limit < chunkSize) {
315
- chunkSize = limit;
316
- }
325
+
326
+ if (limit && limit < chunkSize) chunkSize = limit;
317
327
 
318
328
  if (context) {
319
329
  const { rows } = await this.executeQuery<{ count: number; }>({
320
330
  query: getSelectAllCountQuery(query),
321
331
  database,
332
+ isExternal,
333
+ params,
322
334
  });
323
335
  count = rows[0].count;
324
336
  context.total = count;
@@ -328,12 +340,16 @@ export class Pgsql extends Base {
328
340
  ({ rows } = await this.executeQuery<Row>({
329
341
  query: getSelectAllQuery(query, offset, chunkSize),
330
342
  database,
343
+ isExternal,
344
+ params,
331
345
  }));
332
346
  offset += chunkSize;
333
347
  result = result.concat(rows);
348
+
334
349
  if (context) {
335
350
  context.progress = Math.min(offset / count! * 100, 100);
336
351
  }
352
+
337
353
  if (limit && result.length >= limit) {
338
354
  result = result.slice(0, limit);
339
355
  break;
@@ -349,10 +365,11 @@ export class Pgsql extends Base {
349
365
  * const result = await pgsql.getPrimaryKeys({ database: 'db-name', schema: 'schema-name', table: 'table-name' });
350
366
  * ```
351
367
  */
352
- public async getPrimaryKeys({ database, schema, table }: { database: string; schema: string; table: string; }): Promise<string> {
368
+ public async getPrimaryKeys({ database, schema, table, isExternal }: { database: string; schema: string; table: string; isExternal: boolean; }): Promise<string> {
353
369
  const { rows } = await this.executeQuery<{ pk: string; }>({
354
370
  database,
355
371
  query: getGetPrimaryKeysQuery(schema, table),
372
+ isExternal,
356
373
  });
357
374
  return rows[0].pk;
358
375
  }
@@ -371,10 +388,24 @@ export class Pgsql extends Base {
371
388
  * });
372
389
  * ```
373
390
  */
374
- public async editRow({ database, schema, table, key, value, row, primaryKeys }: EditRowArgs): Promise<ExecuteQueryResponse<void>> {
391
+ public async editRow({ database, schema, table, key, value, row, primaryKeys, isExternal }: EditRowArgs): Promise<ExecuteQueryResponse<void>> {
392
+ // TODO: maybe move query and params to utils and return both
393
+ const params: any[] = [];
394
+ const addParam = (val: any) => {
395
+ params.push(val);
396
+ return `$${params.length}`;
397
+ };
398
+
399
+ const pk = splitPrimaryKeys(primaryKeys);
400
+
401
+ // TODO: move query to utils
375
402
  return this.executeQuery({
376
403
  database,
377
- query: getEditRowQuery(schema, table, key, value, row, primaryKeys),
404
+ query: `update ${schema}.${table}
405
+ set ${key} = ${addParam(value)}
406
+ where ${pk.map(primaryKey => `${primaryKey} = ${addParam(row[primaryKey])}`).join(' AND ')}`,
407
+ isExternal,
408
+ params,
378
409
  });
379
410
  }
380
411
 
@@ -392,10 +423,23 @@ export class Pgsql extends Base {
392
423
  * });
393
424
  * ```
394
425
  */
395
- public async deleteRows({ database, schema, table, rows, primaryKeys }: DeleteRowsArgs): Promise<ExecuteQueryResponse<void>> {
426
+ public async deleteRows({ database, schema, table, rows, primaryKeys, isExternal }: DeleteRowsArgs): Promise<ExecuteQueryResponse<void>> {
427
+ const params: any[] = [];
428
+ const addParam = (val: any) => {
429
+ params.push(val);
430
+ return `$${params.length}`;
431
+ };
432
+
433
+ const pk = splitPrimaryKeys(primaryKeys);
434
+ // TODO: move query to util
435
+ const query = `delete from ${schema}.${table}
436
+ where (${rows.map(row => `${pk.map(primaryKey => `${primaryKey} = ${addParam(row[primaryKey])}`).join(' AND ')}`).join(') \nOR (')})`;
437
+
396
438
  return this.executeQuery({
397
439
  database,
398
- query: getDeleteRowsQuery(schema, table, rows, primaryKeys),
440
+ query,
441
+ isExternal,
442
+ params,
399
443
  });
400
444
  }
401
445
 
@@ -405,10 +449,11 @@ export class Pgsql extends Base {
405
449
  * const result = await pgsql.generateTableSchema({ database: 'db-name', schema: 'schema-name', table: 'table-name' });
406
450
  * ```
407
451
  */
408
- public async generateTableSchema({ database, schema, table }: { database: string; schema: string; table: string; }): Promise<string> {
452
+ public async generateTableSchema({ database, schema, table, isExternal }: { database: string; schema: string; table: string; isExternal: boolean; }): Promise<string> {
409
453
  const { rows } = await this.executeQuery<{ code: string; }>({
410
454
  database,
411
455
  query: getGenerateTableSchemaQuery(schema, table),
456
+ isExternal,
412
457
  });
413
458
 
414
459
  return rows[0].code;
package/src/types.ts CHANGED
@@ -25,11 +25,6 @@ export type PgsqlConfig = {
25
25
  * Api version
26
26
  */
27
27
  version?: string;
28
-
29
- /**
30
- * use external database
31
- */
32
- isExternal?: boolean;
33
28
  };
34
29
 
35
30
  export type QueryField = {
@@ -54,10 +49,9 @@ export type ExecuteQueryResponse<T> = {
54
49
 
55
50
  export type ExecuteQueryArgs = {
56
51
  query: string;
57
- params?: {
58
- [key: string]: unknown;
59
- };
52
+ params?: any[];
60
53
  database: string;
54
+ isExternal: boolean;
61
55
  };
62
56
 
63
57
  export type CreateDatabaseResponse = {
@@ -96,6 +90,7 @@ export type CreateTableArgs = {
96
90
  table: string;
97
91
  columns: TableColumn[];
98
92
  primaryKey: string;
93
+ isExternal: boolean;
99
94
  };
100
95
 
101
96
  export type AddColumnsArgs = {
@@ -103,6 +98,7 @@ export type AddColumnsArgs = {
103
98
  schema: string;
104
99
  table: string;
105
100
  columns: TableColumn[];
101
+ isExternal: boolean;
106
102
  };
107
103
 
108
104
  export type Row = {
@@ -118,6 +114,7 @@ export type InsertArgs = {
118
114
  context?: {
119
115
  progress?: number;
120
116
  };
117
+ isExternal: boolean;
121
118
  };
122
119
 
123
120
  export type EncodedValue = string | number | boolean;
@@ -132,6 +129,8 @@ export type SelectAllArgs = {
132
129
  chunkSize?: number;
133
130
  offset?: number;
134
131
  limit?: number;
132
+ isExternal: boolean;
133
+ params?: any[];
135
134
  };
136
135
 
137
136
  export type EditRowArgs = {
@@ -142,6 +141,7 @@ export type EditRowArgs = {
142
141
  value: unknown;
143
142
  row: Row;
144
143
  primaryKeys: string;
144
+ isExternal: boolean;
145
145
  };
146
146
 
147
147
  export type DeleteRowsArgs = {
@@ -150,6 +150,7 @@ export type DeleteRowsArgs = {
150
150
  table: string;
151
151
  rows: Row[];
152
152
  primaryKeys: string;
153
+ isExternal: boolean;
153
154
  };
154
155
 
155
156
  export type DatabaseItem = {
@@ -2,9 +2,6 @@
2
2
  * @internal
3
3
  */
4
4
 
5
- export { default as extractDatabaseNames } from './extractDatabaseNames';
6
- export { default as getInsertKeys } from './getInsertKeys';
7
- export { default as encodeValue } from './encodeValue';
8
5
  export { default as splitPrimaryKeys } from './splitPrimaryKeys';
9
6
  export { default as getListTablesQuery } from './getListTablesQuery';
10
7
  export { default as createSchemaQuery } from './createSchemaQuery';
@@ -12,10 +9,7 @@ export { default as getDropSchemaQuery } from './getDropSchemaQuery';
12
9
  export { default as getCreateTableQuery } from './getCreateTableQuery';
13
10
  export { default as getDropTableQuery } from './getDropTableQuery';
14
11
  export { default as getAddColumnsQuery } from './getAddColumnsQuery';
15
- export { default as getInsertQueries } from './getInsertQueries';
16
12
  export { default as getSelectAllCountQuery } from './getSelectAllCountQuery';
17
13
  export { default as getSelectAllQuery } from './getSelectAllQuery';
18
- export { default as getEditRowQuery } from './getEditRowQuery';
19
- export { default as getDeleteRowsQuery } from './getDeleteRowsQuery';
20
14
  export { default as getGenerateTableSchemaQuery } from './getGenerateTableSchemaQuery';
21
15
  export { default as getGetPrimaryKeysQuery } from './getGetPrimaryKeysQuery';
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var lodash_1 = __importDefault(require("lodash"));
7
- function encodeValue(value) {
8
- if (lodash_1.default.isUndefined(value) || value === '' || lodash_1.default.isNull(value))
9
- return 'NULL';
10
- if (lodash_1.default.isString(value))
11
- return "'".concat(value.replaceAll('\'', '\'\''), "'");
12
- if (lodash_1.default.isNumber(value) || lodash_1.default.isBoolean(value))
13
- return value;
14
- return "'".concat(JSON.stringify(value).replaceAll('\'', '\'\''), "'");
15
- }
16
- exports.default = encodeValue;
17
- //# sourceMappingURL=encodeValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeValue.js","sourceRoot":"","sources":["../../../src/utils/encodeValue.ts"],"names":[],"mappings":";;;;;AACA,kDAAuB;AAEvB,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,gBAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3E,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,WAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAG,CAAC;IACpE,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,WAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAG,CAAC;AAC/D,CAAC;AAED,kBAAe,WAAW,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function extractDatabaseNames(databaseNameArr) {
4
- return databaseNameArr.map(function (_a) {
5
- var name = _a.name;
6
- return name;
7
- });
8
- }
9
- exports.default = extractDatabaseNames;
10
- //# sourceMappingURL=extractDatabaseNames.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractDatabaseNames.js","sourceRoot":"","sources":["../../../src/utils/extractDatabaseNames.ts"],"names":[],"mappings":";;AAEA,SAAS,oBAAoB,CAAC,eAA4C;IACxE,OAAO,eAAe,CAAC,GAAG,CAAC,UAAC,EAAQ;YAAN,IAAI,UAAA;QAAO,OAAA,IAAI;IAAJ,CAAI,CAAC,CAAC;AACjD,CAAC;AAED,kBAAe,oBAAoB,CAAC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var utils_1 = require("../utils");
4
- function getDeleteRowQuery(schema, table, rows, primaryKeys) {
5
- var pk = (0, utils_1.splitPrimaryKeys)(primaryKeys);
6
- return "delete from ".concat(schema, ".").concat(table, "\nwhere (").concat(rows.map(function (row) { return "".concat(pk.map(function (primaryKey) { return "".concat(primaryKey, " = ").concat((0, utils_1.encodeValue)(row[primaryKey])); }).join(' AND ')); }).join(') \nOR ('), ")");
7
- }
8
- exports.default = getDeleteRowQuery;
9
- //# sourceMappingURL=getDeleteRowsQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDeleteRowsQuery.js","sourceRoot":"","sources":["../../../src/utils/getDeleteRowsQuery.ts"],"names":[],"mappings":";;AACA,kCAAyD;AAEzD,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAa,EAAE,IAAW,EAAE,WAAmB;IACxF,IAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IACzC,OAAO,sBAAe,MAAM,cAAI,KAAK,sBAC9B,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,UAAG,EAAE,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAG,UAAU,gBAAM,IAAA,mBAAW,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAE,EAAjD,CAAiD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,EAA1F,CAA0F,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAG,CAAC;AACzI,CAAC;AAED,kBAAe,iBAAiB,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var utils_1 = require("../utils");
4
- function getEditRowQuery(schema, table, key, value, row, primaryKeys) {
5
- value = (0, utils_1.encodeValue)(value);
6
- var pk = (0, utils_1.splitPrimaryKeys)(primaryKeys);
7
- return "update ".concat(schema, ".").concat(table, "\nset ").concat(key, " = ").concat(value, "\nwhere ").concat(pk.map(function (primaryKey) { return "".concat(primaryKey, " = ").concat((0, utils_1.encodeValue)(row[primaryKey])); }).join(' AND '));
8
- }
9
- exports.default = getEditRowQuery;
10
- //# sourceMappingURL=getEditRowQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getEditRowQuery.js","sourceRoot":"","sources":["../../../src/utils/getEditRowQuery.ts"],"names":[],"mappings":";;AAAA,kCAAyD;AAGzD,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAE,KAAc,EAAE,GAAQ,EAAE,WAAmB;IAChH,KAAK,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;IAC3B,IAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IACzC,OAAO,iBAAU,MAAM,cAAI,KAAK,mBAC5B,GAAG,gBAAM,KAAK,qBACZ,EAAE,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAG,UAAU,gBAAM,IAAA,mBAAW,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAE,EAAjD,CAAiD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,CAAC;AAChG,CAAC;AAED,kBAAe,eAAe,CAAC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function getInsertKeys(rows) {
4
- var allKeys = {};
5
- rows.forEach(function (x) { return Object.assign(allKeys, x); });
6
- return Object.keys(allKeys);
7
- }
8
- exports.default = getInsertKeys;
9
- //# sourceMappingURL=getInsertKeys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInsertKeys.js","sourceRoot":"","sources":["../../../src/utils/getInsertKeys.ts"],"names":[],"mappings":";;AAEA,SAAS,aAAa,CAAC,IAAW;IAChC,IAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAzB,CAAyB,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,kBAAe,aAAa,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var utils_1 = require("../utils");
7
- var lodash_1 = __importDefault(require("lodash"));
8
- function getInsertQueries(schema, table, insertRows, chunkSize) {
9
- var rows = lodash_1.default.isArray(insertRows) ? insertRows : [insertRows];
10
- var keys = (0, utils_1.getInsertKeys)(rows);
11
- var stringifyRow = function (row) { return "".concat(keys.map(function (key) { return (0, utils_1.encodeValue)(row[key]); }).join(', ')); };
12
- return lodash_1.default.chain(rows)
13
- .chunk(chunkSize)
14
- .map(function (chunk) { return "insert into ".concat(schema, ".").concat(table, " (").concat(keys.join(', '), ")\nvalues (").concat(chunk.map(stringifyRow).join('), ('), ");"); })
15
- .value();
16
- }
17
- exports.default = getInsertQueries;
18
- //# sourceMappingURL=getInsertQueries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInsertQueries.js","sourceRoot":"","sources":["../../../src/utils/getInsertQueries.ts"],"names":[],"mappings":";;;;;AACA,kCAAsD;AACtD,kDAAuB;AAEvB,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,UAAiB,EAAE,SAAiB;IAC3F,IAAM,IAAI,GAAG,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE/D,IAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC;IACjC,IAAM,YAAY,GAAG,UAAC,GAAQ,IAAK,OAAA,UAAG,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAA,mBAAW,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,EAAtD,CAAsD,CAAC;IAE1F,OAAO,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,sBAAe,MAAM,cAAI,KAAK,eAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAC5D,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAI,EAD9B,CAC8B,CAAC;SAC9C,KAAK,EAAE,CAAC;AACb,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
@@ -1,12 +0,0 @@
1
- import _ from 'lodash';
2
- function encodeValue(value) {
3
- if (_.isUndefined(value) || value === '' || _.isNull(value))
4
- return 'NULL';
5
- if (_.isString(value))
6
- return `'${value.replaceAll('\'', '\'\'')}'`;
7
- if (_.isNumber(value) || _.isBoolean(value))
8
- return value;
9
- return `'${JSON.stringify(value).replaceAll('\'', '\'\'')}'`;
10
- }
11
- export default encodeValue;
12
- //# sourceMappingURL=encodeValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeValue.js","sourceRoot":"","sources":["../../../src/utils/encodeValue.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3E,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;IACpE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -1,5 +0,0 @@
1
- function extractDatabaseNames(databaseNameArr) {
2
- return databaseNameArr.map(({ name }) => name);
3
- }
4
- export default extractDatabaseNames;
5
- //# sourceMappingURL=extractDatabaseNames.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractDatabaseNames.js","sourceRoot":"","sources":["../../../src/utils/extractDatabaseNames.ts"],"names":[],"mappings":"AAEA,SAAS,oBAAoB,CAAC,eAA4C;IACxE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,eAAe,oBAAoB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { encodeValue, splitPrimaryKeys } from '../utils';
2
- function getDeleteRowQuery(schema, table, rows, primaryKeys) {
3
- const pk = splitPrimaryKeys(primaryKeys);
4
- return `delete from ${schema}.${table}
5
- where (${rows.map(row => `${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`).join(') \nOR (')})`;
6
- }
7
- export default getDeleteRowQuery;
8
- //# sourceMappingURL=getDeleteRowsQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDeleteRowsQuery.js","sourceRoot":"","sources":["../../../src/utils/getDeleteRowsQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzD,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAa,EAAE,IAAW,EAAE,WAAmB;IACxF,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,eAAe,MAAM,IAAI,KAAK;SAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACzI,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,10 +0,0 @@
1
- import { encodeValue, splitPrimaryKeys } from '../utils';
2
- function getEditRowQuery(schema, table, key, value, row, primaryKeys) {
3
- value = encodeValue(value);
4
- const pk = splitPrimaryKeys(primaryKeys);
5
- return `update ${schema}.${table}
6
- set ${key} = ${value}
7
- where ${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`;
8
- }
9
- export default getEditRowQuery;
10
- //# sourceMappingURL=getEditRowQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getEditRowQuery.js","sourceRoot":"","sources":["../../../src/utils/getEditRowQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGzD,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAE,KAAc,EAAE,GAAQ,EAAE,WAAmB;IAChH,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,UAAU,MAAM,IAAI,KAAK;MAC5B,GAAG,MAAM,KAAK;QACZ,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,MAAM,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -1,7 +0,0 @@
1
- function getInsertKeys(rows) {
2
- const allKeys = {};
3
- rows.forEach(x => Object.assign(allKeys, x));
4
- return Object.keys(allKeys);
5
- }
6
- export default getInsertKeys;
7
- //# sourceMappingURL=getInsertKeys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInsertKeys.js","sourceRoot":"","sources":["../../../src/utils/getInsertKeys.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,IAAW;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -1,14 +0,0 @@
1
- import { encodeValue, getInsertKeys } from '../utils';
2
- import _ from 'lodash';
3
- function getInsertQueries(schema, table, insertRows, chunkSize) {
4
- const rows = _.isArray(insertRows) ? insertRows : [insertRows];
5
- const keys = getInsertKeys(rows);
6
- const stringifyRow = (row) => `${keys.map(key => encodeValue(row[key])).join(', ')}`;
7
- return _.chain(rows)
8
- .chunk(chunkSize)
9
- .map((chunk) => `insert into ${schema}.${table} (${keys.join(', ')})
10
- values (${chunk.map(stringifyRow).join('), (')});`)
11
- .value();
12
- }
13
- export default getInsertQueries;
14
- //# sourceMappingURL=getInsertQueries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getInsertQueries.js","sourceRoot":"","sources":["../../../src/utils/getInsertQueries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAa,EAAE,UAAiB,EAAE,SAAiB;IAC3F,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE1F,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UAC5D,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC9C,KAAK,EAAE,CAAC;AACb,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { EncodedValue } from '../types';
2
- declare function encodeValue(value: unknown): EncodedValue;
3
- export default encodeValue;
4
- //# sourceMappingURL=encodeValue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encodeValue.d.ts","sourceRoot":"","sources":["../../../src/utils/encodeValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,iBAAS,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAKjD;AAED,eAAe,WAAW,CAAC"}
@@ -1,4 +0,0 @@
1
- import { ListDatabasesResponseItem } from '../types';
2
- declare function extractDatabaseNames(databaseNameArr: ListDatabasesResponseItem[]): string[];
3
- export default extractDatabaseNames;
4
- //# sourceMappingURL=extractDatabaseNames.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extractDatabaseNames.d.ts","sourceRoot":"","sources":["../../../src/utils/extractDatabaseNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,iBAAS,oBAAoB,CAAC,eAAe,EAAE,yBAAyB,EAAE,GAAG,MAAM,EAAE,CAEpF;AAED,eAAe,oBAAoB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Row } from '../types';
2
- declare function getDeleteRowQuery(schema: string, table: string, rows: Row[], primaryKeys: string): string;
3
- export default getDeleteRowQuery;
4
- //# sourceMappingURL=getDeleteRowsQuery.d.ts.map