af-db-ts 2.0.95 → 2.0.97
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/src/pg/get-sql/insert.js +1 -1
- package/dist/cjs/src/pg/get-sql/insert.js.map +1 -1
- package/dist/cjs/src/pg/get-sql/merge.js +7 -2
- package/dist/cjs/src/pg/get-sql/merge.js.map +1 -1
- package/dist/esm/src/pg/get-sql/insert.js +1 -1
- package/dist/esm/src/pg/get-sql/insert.js.map +1 -1
- package/dist/esm/src/pg/get-sql/merge.js +7 -2
- package/dist/esm/src/pg/get-sql/merge.js.map +1 -1
- package/dist/types/src/pg/get-sql/insert.d.ts +1 -0
- package/dist/types/src/pg/get-sql/insert.d.ts.map +1 -1
- package/dist/types/src/pg/get-sql/merge.d.ts +1 -0
- package/dist/types/src/pg/get-sql/merge.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/pg/get-sql/insert.ts +2 -1
- package/src/pg/get-sql/merge.ts +9 -2
|
@@ -31,7 +31,7 @@ const getInsertSqlPg = async (arg) => {
|
|
|
31
31
|
const target = utils_1.schemaTable.to.pg(commonSchemaAndTable);
|
|
32
32
|
// noinspection UnnecessaryLocalVariableJS
|
|
33
33
|
const insertSQL = `INSERT INTO ${target} (${insertFieldsList})
|
|
34
|
-
VALUES ${values} ON CONFLICT DO NOTHING ${out};`;
|
|
34
|
+
VALUES ${values}${arg.isErrorOnConflict ? '' : 'ON CONFLICT DO NOTHING'} ${out};`;
|
|
35
35
|
return insertSQL;
|
|
36
36
|
};
|
|
37
37
|
exports.getInsertSqlPg = getInsertSqlPg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AACtD,oDAAqD;AAGrD,6CAAgD;AAChD,yCAAoC;AAE7B,MAAM,cAAc,GAAG,KAAK,EAAoC,
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AACtD,oDAAqD;AAGrD,6CAAgD;AAChD,yCAAoC;AAE7B,MAAM,cAAc,GAAG,KAAK,EAAoC,GAOtE,EAAmB,EAAE;IACpB,MAAM,EAAE,oBAAoB,EAAE,GAAG,GAAG,CAAC;IAErC,MAAM,WAAW,GAAmB,MAAM,IAAA,kCAAgB,EAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IACnG,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAEtE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAA,iCAAiB,EAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,aAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,mBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACvD,0CAA0C;IAC1C,MAAM,SAAS,GAAG,eAAe,MAAM,KAAK,gBAAgB;8BAChC,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,IAAI,GAAG,GAAG,CAAC;IACrG,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAvCW,QAAA,cAAc,kBAuCzB"}
|
|
@@ -5,7 +5,7 @@ const table_schema_pg_1 = require("../table-schema-pg");
|
|
|
5
5
|
const prepare_value_1 = require("../prepare-value");
|
|
6
6
|
const utils_1 = require("../../utils/utils");
|
|
7
7
|
const getMergeSqlPg = async (arg) => {
|
|
8
|
-
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull } = arg;
|
|
8
|
+
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull, fieldsExcludedFromUpdatePart = [] } = arg;
|
|
9
9
|
if (!recordset?.length) {
|
|
10
10
|
return '';
|
|
11
11
|
}
|
|
@@ -29,7 +29,12 @@ const getMergeSqlPg = async (arg) => {
|
|
|
29
29
|
});
|
|
30
30
|
return `(${preparedValues.join(', ')})`;
|
|
31
31
|
}).join(',\n ').trim();
|
|
32
|
-
|
|
32
|
+
let updateFieldsArr = mergeFieldsArr;
|
|
33
|
+
if (fieldsExcludedFromUpdatePart?.length) {
|
|
34
|
+
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
35
|
+
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
36
|
+
}
|
|
37
|
+
const updateSetStr = updateFieldsArr.map((f) => {
|
|
33
38
|
const vArr = [`EXCLUDED."${f}"`];
|
|
34
39
|
if (noUpdateIfNull) {
|
|
35
40
|
vArr.push(`${schemaTableStr}."${f}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AACtD,oDAAqD;AAErD,6CAAgD;AAGzC,MAAM,aAAa,GAAG,KAAK,EAAoC,
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export const getInsertSqlPg = async (arg) => {
|
|
|
28
28
|
const target = schemaTable.to.pg(commonSchemaAndTable);
|
|
29
29
|
// noinspection UnnecessaryLocalVariableJS
|
|
30
30
|
const insertSQL = `INSERT INTO ${target} (${insertFieldsList})
|
|
31
|
-
VALUES ${values} ON CONFLICT DO NOTHING ${out};`;
|
|
31
|
+
VALUES ${values}${arg.isErrorOnConflict ? '' : 'ON CONFLICT DO NOTHING'} ${out};`;
|
|
32
32
|
return insertSQL;
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=insert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAoC,
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAoC,GAOtE,EAAmB,EAAE;IACpB,MAAM,EAAE,oBAAoB,EAAE,GAAG,GAAG,CAAC;IAErC,MAAM,WAAW,GAAmB,MAAM,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IACnG,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAEtE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3C,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;IACvD,0CAA0C;IAC1C,MAAM,SAAS,GAAG,eAAe,MAAM,KAAK,gBAAgB;8BAChC,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,IAAI,GAAG,GAAG,CAAC;IACrG,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { getTableSchemaPg } from '../table-schema-pg';
|
|
|
2
2
|
import { prepareSqlValuePg } from '../prepare-value';
|
|
3
3
|
import { schemaTable } from '../../utils/utils';
|
|
4
4
|
export const getMergeSqlPg = async (arg) => {
|
|
5
|
-
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull } = arg;
|
|
5
|
+
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull, fieldsExcludedFromUpdatePart = [] } = arg;
|
|
6
6
|
if (!recordset?.length) {
|
|
7
7
|
return '';
|
|
8
8
|
}
|
|
@@ -26,7 +26,12 @@ export const getMergeSqlPg = async (arg) => {
|
|
|
26
26
|
});
|
|
27
27
|
return `(${preparedValues.join(', ')})`;
|
|
28
28
|
}).join(',\n ').trim();
|
|
29
|
-
|
|
29
|
+
let updateFieldsArr = mergeFieldsArr;
|
|
30
|
+
if (fieldsExcludedFromUpdatePart?.length) {
|
|
31
|
+
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
32
|
+
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
33
|
+
}
|
|
34
|
+
const updateSetStr = updateFieldsArr.map((f) => {
|
|
30
35
|
const vArr = [`EXCLUDED."${f}"`];
|
|
31
36
|
if (noUpdateIfNull) {
|
|
32
37
|
vArr.push(`${schemaTableStr}."${f}"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAoC,
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,6 @@ export declare const getInsertSqlPg: <U extends TDBRecord = TDBRecord>(arg: {
|
|
|
5
5
|
recordset: TRecordSet<U>;
|
|
6
6
|
excludeFromInsert?: string[] | undefined;
|
|
7
7
|
addOutputInserted?: boolean | undefined;
|
|
8
|
+
isErrorOnConflict?: boolean | undefined;
|
|
8
9
|
}) => Promise<string>;
|
|
9
10
|
//# sourceMappingURL=insert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAI9D,eAAO,MAAM,cAAc;kBACX,MAAM;0BACE,MAAM
|
|
1
|
+
{"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../../src/pg/get-sql/insert.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAI9D,eAAO,MAAM,cAAc;kBACX,MAAM;0BACE,MAAM;;;;;MAK1B,QAAQ,MAAM,CAgCjB,CAAC"}
|
|
@@ -4,6 +4,7 @@ export declare const getMergeSqlPg: <U extends TDBRecord = TDBRecord>(arg: {
|
|
|
4
4
|
commonSchemaAndTable: string;
|
|
5
5
|
recordset: TRecordSet<U>;
|
|
6
6
|
omitFields?: string[] | undefined;
|
|
7
|
+
fieldsExcludedFromUpdatePart?: string[] | undefined;
|
|
7
8
|
noUpdateIfNull?: boolean | undefined;
|
|
8
9
|
mergeCorrection?: ((_sql: string) => string) | undefined;
|
|
9
10
|
}) => Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE9D,eAAO,MAAM,aAAa;kBACV,MAAM;0BACE,MAAM
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../src/pg/get-sql/merge.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE9D,eAAO,MAAM,aAAa;kBACV,MAAM;0BACE,MAAM;;;;;8BAKH,MAAM,KAAK,MAAM;MACxC,QAAQ,MAAM,CA8DjB,CAAC"}
|
package/package.json
CHANGED
package/src/pg/get-sql/insert.ts
CHANGED
|
@@ -11,6 +11,7 @@ export const getInsertSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
11
11
|
recordset: TRecordSet<U>,
|
|
12
12
|
excludeFromInsert?: string[],
|
|
13
13
|
addOutputInserted?: boolean,
|
|
14
|
+
isErrorOnConflict?: boolean,
|
|
14
15
|
}): Promise<string> => {
|
|
15
16
|
const { commonSchemaAndTable } = arg;
|
|
16
17
|
|
|
@@ -41,6 +42,6 @@ export const getInsertSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
41
42
|
const target = schemaTable.to.pg(commonSchemaAndTable);
|
|
42
43
|
// noinspection UnnecessaryLocalVariableJS
|
|
43
44
|
const insertSQL = `INSERT INTO ${target} (${insertFieldsList})
|
|
44
|
-
VALUES ${values} ON CONFLICT DO NOTHING ${out};`;
|
|
45
|
+
VALUES ${values}${arg.isErrorOnConflict ? '' : 'ON CONFLICT DO NOTHING'} ${out};`;
|
|
45
46
|
return insertSQL;
|
|
46
47
|
};
|
package/src/pg/get-sql/merge.ts
CHANGED
|
@@ -9,10 +9,11 @@ export const getMergeSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
9
9
|
commonSchemaAndTable: string,
|
|
10
10
|
recordset: TRecordSet<U>,
|
|
11
11
|
omitFields?: string[],
|
|
12
|
+
fieldsExcludedFromUpdatePart?: string[],
|
|
12
13
|
noUpdateIfNull?: boolean,
|
|
13
14
|
mergeCorrection?: (_sql: string) => string,
|
|
14
15
|
}): Promise<string> => {
|
|
15
|
-
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull } = arg;
|
|
16
|
+
const { connectionId, commonSchemaAndTable, recordset, omitFields = [], noUpdateIfNull, fieldsExcludedFromUpdatePart = [] } = arg;
|
|
16
17
|
if (!recordset?.length) {
|
|
17
18
|
return '';
|
|
18
19
|
}
|
|
@@ -40,7 +41,13 @@ export const getMergeSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
40
41
|
return `(${preparedValues.join(', ')})`;
|
|
41
42
|
}).join(',\n ').trim();
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
let updateFieldsArr: string[] = mergeFieldsArr;
|
|
45
|
+
if (fieldsExcludedFromUpdatePart?.length) {
|
|
46
|
+
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
47
|
+
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const updateSetStr = updateFieldsArr.map((f) => {
|
|
44
51
|
const vArr = [`EXCLUDED."${f}"`];
|
|
45
52
|
if (noUpdateIfNull) {
|
|
46
53
|
vArr.push(`${schemaTableStr}."${f}"`);
|