@or-sdk/pgsql 1.0.3-beta.1943.0 → 1.0.3-beta.1944.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.
- package/dist/cjs/Pgsql.js +123 -35
- package/dist/cjs/Pgsql.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -13
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/Pgsql.js +102 -28
- package/dist/esm/Pgsql.js.map +1 -1
- package/dist/esm/utils/index.js +0 -6
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/Pgsql.d.ts +28 -18
- package/dist/types/Pgsql.d.ts.map +1 -1
- package/dist/types/types.d.ts +20 -13
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +0 -6
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Pgsql.ts +147 -59
- package/src/types.ts +20 -18
- package/src/utils/index.ts +0 -6
- package/dist/cjs/utils/encodeValue.js +0 -17
- package/dist/cjs/utils/encodeValue.js.map +0 -1
- package/dist/cjs/utils/extractDatabaseNames.js +0 -10
- package/dist/cjs/utils/extractDatabaseNames.js.map +0 -1
- package/dist/cjs/utils/getDeleteRowsQuery.js +0 -9
- package/dist/cjs/utils/getDeleteRowsQuery.js.map +0 -1
- package/dist/cjs/utils/getEditRowQuery.js +0 -10
- package/dist/cjs/utils/getEditRowQuery.js.map +0 -1
- package/dist/cjs/utils/getInsertKeys.js +0 -9
- package/dist/cjs/utils/getInsertKeys.js.map +0 -1
- package/dist/cjs/utils/getInsertQueries.js +0 -18
- package/dist/cjs/utils/getInsertQueries.js.map +0 -1
- package/dist/esm/utils/encodeValue.js +0 -12
- package/dist/esm/utils/encodeValue.js.map +0 -1
- package/dist/esm/utils/extractDatabaseNames.js +0 -5
- package/dist/esm/utils/extractDatabaseNames.js.map +0 -1
- package/dist/esm/utils/getDeleteRowsQuery.js +0 -8
- package/dist/esm/utils/getDeleteRowsQuery.js.map +0 -1
- package/dist/esm/utils/getEditRowQuery.js +0 -10
- package/dist/esm/utils/getEditRowQuery.js.map +0 -1
- package/dist/esm/utils/getInsertKeys.js +0 -7
- package/dist/esm/utils/getInsertKeys.js.map +0 -1
- package/dist/esm/utils/getInsertQueries.js +0 -14
- package/dist/esm/utils/getInsertQueries.js.map +0 -1
- package/dist/types/utils/encodeValue.d.ts +0 -4
- package/dist/types/utils/encodeValue.d.ts.map +0 -1
- package/dist/types/utils/extractDatabaseNames.d.ts +0 -4
- package/dist/types/utils/extractDatabaseNames.d.ts.map +0 -1
- package/dist/types/utils/getDeleteRowsQuery.d.ts +0 -4
- package/dist/types/utils/getDeleteRowsQuery.d.ts.map +0 -1
- package/dist/types/utils/getEditRowQuery.d.ts +0 -4
- package/dist/types/utils/getEditRowQuery.d.ts.map +0 -1
- package/dist/types/utils/getInsertKeys.d.ts +0 -4
- package/dist/types/utils/getInsertKeys.d.ts.map +0 -1
- package/dist/types/utils/getInsertQueries.d.ts +0 -4
- package/dist/types/utils/getInsertQueries.d.ts.map +0 -1
- package/src/utils/encodeValue.ts +0 -11
- package/src/utils/extractDatabaseNames.ts +0 -7
- package/src/utils/getDeleteRowsQuery.ts +0 -10
- package/src/utils/getEditRowQuery.ts +0 -12
- package/src/utils/getInsertKeys.ts +0 -9
- package/src/utils/getInsertQueries.ts +0 -18
|
@@ -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 +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 +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 +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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getDeleteRowsQuery.d.ts","sourceRoot":"","sources":["../../../src/utils/getDeleteRowsQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIlG;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getEditRowQuery.d.ts","sourceRoot":"","sources":["../../../src/utils/getEditRowQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM1H;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getInsertKeys.d.ts","sourceRoot":"","sources":["../../../src/utils/getInsertKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,iBAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAI5C;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getInsertQueries.d.ts","sourceRoot":"","sources":["../../../src/utils/getInsertQueries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvG;AAED,eAAe,gBAAgB,CAAC"}
|
package/src/utils/encodeValue.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { EncodedValue } from '../types';
|
|
2
|
-
import _ from 'lodash';
|
|
3
|
-
|
|
4
|
-
function encodeValue(value: unknown): EncodedValue {
|
|
5
|
-
if (_.isUndefined(value) || value === '' || _.isNull(value)) return 'NULL';
|
|
6
|
-
if (_.isString(value)) return `'${value.replaceAll('\'', '\'\'')}'`;
|
|
7
|
-
if (_.isNumber(value) || _.isBoolean(value)) return value;
|
|
8
|
-
return `'${JSON.stringify(value).replaceAll('\'', '\'\'')}'`;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export default encodeValue;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Row } from '../types';
|
|
2
|
-
import { encodeValue, splitPrimaryKeys } from '../utils';
|
|
3
|
-
|
|
4
|
-
function getDeleteRowQuery(schema: string, table: string, rows: Row[], primaryKeys: string): string {
|
|
5
|
-
const pk = splitPrimaryKeys(primaryKeys);
|
|
6
|
-
return `delete from ${schema}.${table}
|
|
7
|
-
where (${rows.map(row => `${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`).join(') \nOR (')})`;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default getDeleteRowQuery;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { encodeValue, splitPrimaryKeys } from '../utils';
|
|
2
|
-
import { Row } from '../types';
|
|
3
|
-
|
|
4
|
-
function getEditRowQuery(schema: string, table: string, key: string, value: unknown, row: Row, primaryKeys: string): string {
|
|
5
|
-
value = encodeValue(value);
|
|
6
|
-
const pk = splitPrimaryKeys(primaryKeys);
|
|
7
|
-
return `update ${schema}.${table}
|
|
8
|
-
set ${key} = ${value}
|
|
9
|
-
where ${pk.map(primaryKey => `${primaryKey} = ${encodeValue(row[primaryKey])}`).join(' AND ')}`;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export default getEditRowQuery;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Row } from '../types';
|
|
2
|
-
import { encodeValue, getInsertKeys } from '../utils';
|
|
3
|
-
import _ from 'lodash';
|
|
4
|
-
|
|
5
|
-
function getInsertQueries(schema: string, table: string, insertRows: Row[], chunkSize: number): string[] {
|
|
6
|
-
const rows = _.isArray(insertRows) ? insertRows : [insertRows];
|
|
7
|
-
|
|
8
|
-
const keys = getInsertKeys(rows);
|
|
9
|
-
const stringifyRow = (row: Row) => `${keys.map(key => encodeValue(row[key])).join(', ')}`;
|
|
10
|
-
|
|
11
|
-
return _.chain(rows)
|
|
12
|
-
.chunk(chunkSize)
|
|
13
|
-
.map((chunk) => `insert into ${schema}.${table} (${keys.join(', ')})
|
|
14
|
-
values (${chunk.map(stringifyRow).join('), (')});`)
|
|
15
|
-
.value();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default getInsertQueries;
|