af-db-ts 3.0.15 → 3.0.17
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/gen-table-interfaces-pg.js +7 -4
- package/dist/cjs/src/pg/gen-table-interfaces-pg.js.map +1 -1
- package/dist/cjs/src/pg/get-sql/merge.js +3 -2
- package/dist/cjs/src/pg/get-sql/merge.js.map +1 -1
- package/dist/esm/src/pg/gen-table-interfaces-pg.js +7 -4
- package/dist/esm/src/pg/gen-table-interfaces-pg.js.map +1 -1
- package/dist/esm/src/pg/get-sql/merge.js +3 -2
- package/dist/esm/src/pg/get-sql/merge.js.map +1 -1
- package/dist/types/src/pg/gen-table-interfaces-pg.d.ts +2 -2
- package/dist/types/src/pg/gen-table-interfaces-pg.d.ts.map +1 -1
- package/dist/types/src/pg/get-sql/merge.d.ts +2 -0
- package/dist/types/src/pg/get-sql/merge.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/pg/gen-table-interfaces-pg.ts +7 -2
- package/src/pg/get-sql/merge.ts +6 -2
|
@@ -57,24 +57,27 @@ const utils_pg_1 = require("./utils-pg");
|
|
|
57
57
|
// };
|
|
58
58
|
const getFieldDefinition = (d) => `${d.name}${d.isNullable || d.hasDefault ? '?' : ''}: ${(0, utils_pg_1.getJsTypeByTypePg)(d.dataType)}${d.isNullable ? ' | null' : ''}`;
|
|
59
59
|
const TABLE_INTERFACES_DIR = __dirname.replace(/\\/g, '/').replace(/\/dist\//, '/');
|
|
60
|
-
const genTableInterfacePg = async (connectionId, commonSchemaAndTable, tableInterfacesDir = TABLE_INTERFACES_DIR) => {
|
|
60
|
+
const genTableInterfacePg = async (connectionId, commonSchemaAndTable, tableInterfacesDir = TABLE_INTERFACES_DIR, isSortFields = false) => {
|
|
61
61
|
const tableSchema = await (0, table_schema_pg_1.getTableSchemaPg)(connectionId, commonSchemaAndTable);
|
|
62
62
|
const interfaceName = `I${commonSchemaAndTable
|
|
63
63
|
.replace('.', '_')
|
|
64
64
|
.split(/_+/)
|
|
65
65
|
.map((word) => (word ? word[0].toUpperCase() + word.substring(1) : ''))
|
|
66
66
|
.join('')}Record`;
|
|
67
|
-
|
|
67
|
+
let linesArr = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
|
|
68
|
+
if (isSortFields) {
|
|
69
|
+
linesArr = linesArr.sort();
|
|
70
|
+
}
|
|
68
71
|
const content = `export interface ${interfaceName} {\n${linesArr.map((v) => ` ${v}`).join(',\n')},\n}\n`;
|
|
69
72
|
const fileName = `${commonSchemaAndTable.replace('.', '-').toLowerCase()}.ts`;
|
|
70
73
|
const filePath = path.resolve(path.join(tableInterfacesDir, fileName));
|
|
71
74
|
fs.writeFileSync(filePath, content);
|
|
72
75
|
};
|
|
73
76
|
exports.genTableInterfacePg = genTableInterfacePg;
|
|
74
|
-
const genTableInterfacesPg = async (connectionId, tables, tableInterfacesDir = TABLE_INTERFACES_DIR) => {
|
|
77
|
+
const genTableInterfacesPg = async (connectionId, tables, tableInterfacesDir = TABLE_INTERFACES_DIR, isSortFields = false) => {
|
|
75
78
|
for (let i = 0; i < tables.length; i++) {
|
|
76
79
|
const commonSchemaAndTable = tables[i];
|
|
77
|
-
await (0, exports.genTableInterfacePg)(connectionId, commonSchemaAndTable, tableInterfacesDir);
|
|
80
|
+
await (0, exports.genTableInterfacePg)(connectionId, commonSchemaAndTable, tableInterfacesDir, isSortFields);
|
|
78
81
|
}
|
|
79
82
|
af_echo_ts_1.echo.g(`Generated ${tables.length} table interfaces in folder '.${tableInterfacesDir.replace(process.cwd().replace(/\\/g, '/'), '')}/'`);
|
|
80
83
|
await (0, pool_pg_1.closeAllPgConnectionsPg)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen-table-interfaces-pg.js","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,2CAA6B;AAC7B,uCAAyB;AACzB,2CAAkC;AAElC,uDAAqD;AACrD,uCAAoD;AACpD,yCAA+C;AAE/C,oFAAoF;AACpF,uBAAuB;AACvB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB,qBAAqB;AACrB,yBAAyB;AACzB,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,oBAAoB;AACpB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB;AACzB,2BAA2B;AAC3B,2CAA2C;AAC3C,eAAe;AACf,sBAAsB;AACtB,MAAM;AACN,KAAK;AAEL,MAAM,kBAAkB,GAAG,CACzB,CAAc,EACN,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAA,4BAAiB,EAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAErI,MAAM,oBAAoB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAE7E,MAAM,mBAAmB,GAAG,KAAK,EACtC,YAAoB,EACpB,oBAA4B,EAC5B,qBAA6B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"gen-table-interfaces-pg.js","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,2CAA6B;AAC7B,uCAAyB;AACzB,2CAAkC;AAElC,uDAAqD;AACrD,uCAAoD;AACpD,yCAA+C;AAE/C,oFAAoF;AACpF,uBAAuB;AACvB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB,qBAAqB;AACrB,yBAAyB;AACzB,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,oBAAoB;AACpB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB;AACzB,2BAA2B;AAC3B,2CAA2C;AAC3C,eAAe;AACf,sBAAsB;AACtB,MAAM;AACN,KAAK;AAEL,MAAM,kBAAkB,GAAG,CACzB,CAAc,EACN,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAA,4BAAiB,EAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAErI,MAAM,oBAAoB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAE7E,MAAM,mBAAmB,GAAG,KAAK,EACtC,YAAoB,EACpB,oBAA4B,EAC5B,qBAA6B,oBAAoB,EACjD,eAAwB,KAAK,EACd,EAAE;IACjB,MAAM,WAAW,GAAG,MAAM,IAAA,kCAAgB,EAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,IAAI,oBAAoB;SAC3C,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACtE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;IAEpB,IAAI,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1F,IAAI,YAAY,EAAE,CAAC;QACjB,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,aAAa,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAE1G,MAAM,QAAQ,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AAvBW,QAAA,mBAAmB,uBAuB9B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,YAAoB,EACpB,MAAgB,EAChB,qBAA6B,oBAAoB,EACjD,eAAwB,KAAK,EACd,EAAE;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,IAAA,2BAAmB,EAAC,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAClG,CAAC;IACD,iBAAI,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,MAAM,iCAC/B,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,IAAA,iCAAuB,GAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B"}
|
|
@@ -12,6 +12,7 @@ const getMergeSqlPg = async (arg) => {
|
|
|
12
12
|
const schemaTableStr = utils_1.schemaTable.to.pg(commonSchemaAndTable);
|
|
13
13
|
const tableSchema = await (0, table_schema_pg_1.getTableSchemaPg)(connectionId, commonSchemaAndTable);
|
|
14
14
|
const { columnsSchema, pk, fieldsWoSerialsAndRO, defaults } = tableSchema;
|
|
15
|
+
const conflictFields = arg.conflictFields || pk;
|
|
15
16
|
let mergeFieldsArr = fieldsWoSerialsAndRO;
|
|
16
17
|
if (omitFields.length) {
|
|
17
18
|
const set = new Set(omitFields);
|
|
@@ -29,7 +30,7 @@ const getMergeSqlPg = async (arg) => {
|
|
|
29
30
|
});
|
|
30
31
|
return `(${preparedValues.join(', ')})`;
|
|
31
32
|
}).join(',\n ').trim();
|
|
32
|
-
let updateFieldsArr = mergeFieldsArr;
|
|
33
|
+
let updateFieldsArr = arg.updateFields || mergeFieldsArr;
|
|
33
34
|
if (fieldsExcludedFromUpdatePart?.length) {
|
|
34
35
|
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
35
36
|
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
@@ -52,7 +53,7 @@ INSERT INTO ${schemaTableStr} (
|
|
|
52
53
|
)
|
|
53
54
|
VALUES
|
|
54
55
|
${mergeValues}
|
|
55
|
-
ON CONFLICT (${
|
|
56
|
+
ON CONFLICT (${conflictFields.map((f) => `"${f}"`).join(', ')})
|
|
56
57
|
DO UPDATE SET
|
|
57
58
|
${updateSetStr}
|
|
58
59
|
${returning ? `RETURNING ${returning}` : ''}
|
|
@@ -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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"}
|
|
@@ -31,23 +31,26 @@ import { getJsTypeByTypePg } from './utils-pg';
|
|
|
31
31
|
// };
|
|
32
32
|
const getFieldDefinition = (d) => `${d.name}${d.isNullable || d.hasDefault ? '?' : ''}: ${getJsTypeByTypePg(d.dataType)}${d.isNullable ? ' | null' : ''}`;
|
|
33
33
|
const TABLE_INTERFACES_DIR = __dirname.replace(/\\/g, '/').replace(/\/dist\//, '/');
|
|
34
|
-
export const genTableInterfacePg = async (connectionId, commonSchemaAndTable, tableInterfacesDir = TABLE_INTERFACES_DIR) => {
|
|
34
|
+
export const genTableInterfacePg = async (connectionId, commonSchemaAndTable, tableInterfacesDir = TABLE_INTERFACES_DIR, isSortFields = false) => {
|
|
35
35
|
const tableSchema = await getTableSchemaPg(connectionId, commonSchemaAndTable);
|
|
36
36
|
const interfaceName = `I${commonSchemaAndTable
|
|
37
37
|
.replace('.', '_')
|
|
38
38
|
.split(/_+/)
|
|
39
39
|
.map((word) => (word ? word[0].toUpperCase() + word.substring(1) : ''))
|
|
40
40
|
.join('')}Record`;
|
|
41
|
-
|
|
41
|
+
let linesArr = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
|
|
42
|
+
if (isSortFields) {
|
|
43
|
+
linesArr = linesArr.sort();
|
|
44
|
+
}
|
|
42
45
|
const content = `export interface ${interfaceName} {\n${linesArr.map((v) => ` ${v}`).join(',\n')},\n}\n`;
|
|
43
46
|
const fileName = `${commonSchemaAndTable.replace('.', '-').toLowerCase()}.ts`;
|
|
44
47
|
const filePath = path.resolve(path.join(tableInterfacesDir, fileName));
|
|
45
48
|
fs.writeFileSync(filePath, content);
|
|
46
49
|
};
|
|
47
|
-
export const genTableInterfacesPg = async (connectionId, tables, tableInterfacesDir = TABLE_INTERFACES_DIR) => {
|
|
50
|
+
export const genTableInterfacesPg = async (connectionId, tables, tableInterfacesDir = TABLE_INTERFACES_DIR, isSortFields = false) => {
|
|
48
51
|
for (let i = 0; i < tables.length; i++) {
|
|
49
52
|
const commonSchemaAndTable = tables[i];
|
|
50
|
-
await genTableInterfacePg(connectionId, commonSchemaAndTable, tableInterfacesDir);
|
|
53
|
+
await genTableInterfacePg(connectionId, commonSchemaAndTable, tableInterfacesDir, isSortFields);
|
|
51
54
|
}
|
|
52
55
|
echo.g(`Generated ${tables.length} table interfaces in folder '.${tableInterfacesDir.replace(process.cwd().replace(/\\/g, '/'), '')}/'`);
|
|
53
56
|
await closeAllPgConnectionsPg();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen-table-interfaces-pg.js","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,oFAAoF;AACpF,uBAAuB;AACvB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB,qBAAqB;AACrB,yBAAyB;AACzB,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,oBAAoB;AACpB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB;AACzB,2BAA2B;AAC3B,2CAA2C;AAC3C,eAAe;AACf,sBAAsB;AACtB,MAAM;AACN,KAAK;AAEL,MAAM,kBAAkB,GAAG,CACzB,CAAc,EACN,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAErI,MAAM,oBAAoB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,YAAoB,EACpB,oBAA4B,EAC5B,qBAA6B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"gen-table-interfaces-pg.js","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export const getMergeSqlPg = async (arg) => {
|
|
|
9
9
|
const schemaTableStr = schemaTable.to.pg(commonSchemaAndTable);
|
|
10
10
|
const tableSchema = await getTableSchemaPg(connectionId, commonSchemaAndTable);
|
|
11
11
|
const { columnsSchema, pk, fieldsWoSerialsAndRO, defaults } = tableSchema;
|
|
12
|
+
const conflictFields = arg.conflictFields || pk;
|
|
12
13
|
let mergeFieldsArr = fieldsWoSerialsAndRO;
|
|
13
14
|
if (omitFields.length) {
|
|
14
15
|
const set = new Set(omitFields);
|
|
@@ -26,7 +27,7 @@ export const getMergeSqlPg = async (arg) => {
|
|
|
26
27
|
});
|
|
27
28
|
return `(${preparedValues.join(', ')})`;
|
|
28
29
|
}).join(',\n ').trim();
|
|
29
|
-
let updateFieldsArr = mergeFieldsArr;
|
|
30
|
+
let updateFieldsArr = arg.updateFields || mergeFieldsArr;
|
|
30
31
|
if (fieldsExcludedFromUpdatePart?.length) {
|
|
31
32
|
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
32
33
|
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
@@ -49,7 +50,7 @@ INSERT INTO ${schemaTableStr} (
|
|
|
49
50
|
)
|
|
50
51
|
VALUES
|
|
51
52
|
${mergeValues}
|
|
52
|
-
ON CONFLICT (${
|
|
53
|
+
ON CONFLICT (${conflictFields.map((f) => `"${f}"`).join(', ')})
|
|
53
54
|
DO UPDATE SET
|
|
54
55
|
${updateSetStr}
|
|
55
56
|
${returning ? `RETURNING ${returning}` : ''}
|
|
@@ -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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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const genTableInterfacePg: (connectionId: string, commonSchemaAndTable: string, tableInterfacesDir?: string) => Promise<void>;
|
|
2
|
-
export declare const genTableInterfacesPg: (connectionId: string, tables: string[], tableInterfacesDir?: string) => Promise<void>;
|
|
1
|
+
export declare const genTableInterfacePg: (connectionId: string, commonSchemaAndTable: string, tableInterfacesDir?: string, isSortFields?: boolean) => Promise<void>;
|
|
2
|
+
export declare const genTableInterfacesPg: (connectionId: string, tables: string[], tableInterfacesDir?: string, isSortFields?: boolean) => Promise<void>;
|
|
3
3
|
//# sourceMappingURL=gen-table-interfaces-pg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen-table-interfaces-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,mBAAmB,iBAChB,MAAM,wBACE,MAAM,uBACR,MAAM,
|
|
1
|
+
{"version":3,"file":"gen-table-interfaces-pg.d.ts","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,mBAAmB,iBAChB,MAAM,wBACE,MAAM,uBACR,MAAM,iBACZ,OAAO,KACpB,OAAO,CAAC,IAAI,CAkBd,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,MAAM,UACZ,MAAM,EAAE,uBACI,MAAM,iBACZ,OAAO,KACpB,OAAO,CAAC,IAAI,CASd,CAAC"}
|
|
@@ -8,5 +8,7 @@ export declare const getMergeSqlPg: <U extends TDBRecord = TDBRecord>(arg: {
|
|
|
8
8
|
noUpdateIfNull?: boolean;
|
|
9
9
|
mergeCorrection?: (_sql: string) => string;
|
|
10
10
|
returning?: string;
|
|
11
|
+
conflictFields?: string[];
|
|
12
|
+
updateFields?: string[];
|
|
11
13
|
}) => Promise<string>;
|
|
12
14
|
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -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,GAAU,CAAC,SAAS,SAAS,mBAAoB;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
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,GAAU,CAAC,SAAS,SAAS,mBAAoB;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,KAAG,OAAO,CAAC,MAAM,CAyEjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -42,6 +42,7 @@ export const genTableInterfacePg = async (
|
|
|
42
42
|
connectionId: string,
|
|
43
43
|
commonSchemaAndTable: string,
|
|
44
44
|
tableInterfacesDir: string = TABLE_INTERFACES_DIR,
|
|
45
|
+
isSortFields: boolean = false,
|
|
45
46
|
): Promise<void> => {
|
|
46
47
|
const tableSchema = await getTableSchemaPg(connectionId, commonSchemaAndTable);
|
|
47
48
|
const interfaceName = `I${commonSchemaAndTable
|
|
@@ -50,7 +51,10 @@ export const genTableInterfacePg = async (
|
|
|
50
51
|
.map((word) => (word ? word[0].toUpperCase() + word.substring(1) : ''))
|
|
51
52
|
.join('')}Record`;
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
let linesArr: string[] = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
|
|
55
|
+
if (isSortFields) {
|
|
56
|
+
linesArr = linesArr.sort();
|
|
57
|
+
}
|
|
54
58
|
const content = `export interface ${interfaceName} {\n${linesArr.map((v) => ` ${v}`).join(',\n')},\n}\n`;
|
|
55
59
|
|
|
56
60
|
const fileName = `${commonSchemaAndTable.replace('.', '-').toLowerCase()}.ts`;
|
|
@@ -63,10 +67,11 @@ export const genTableInterfacesPg = async (
|
|
|
63
67
|
connectionId: string,
|
|
64
68
|
tables: string[],
|
|
65
69
|
tableInterfacesDir: string = TABLE_INTERFACES_DIR,
|
|
70
|
+
isSortFields: boolean = false,
|
|
66
71
|
): Promise<void> => {
|
|
67
72
|
for (let i = 0; i < tables.length; i++) {
|
|
68
73
|
const commonSchemaAndTable = tables[i];
|
|
69
|
-
await genTableInterfacePg(connectionId, commonSchemaAndTable, tableInterfacesDir);
|
|
74
|
+
await genTableInterfacePg(connectionId, commonSchemaAndTable, tableInterfacesDir, isSortFields);
|
|
70
75
|
}
|
|
71
76
|
echo.g(`Generated ${tables.length} table interfaces in folder '.${
|
|
72
77
|
tableInterfacesDir.replace(process.cwd().replace(/\\/g, '/'), '')}/'`);
|
package/src/pg/get-sql/merge.ts
CHANGED
|
@@ -13,6 +13,8 @@ export const getMergeSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
13
13
|
noUpdateIfNull?: boolean,
|
|
14
14
|
mergeCorrection?: (_sql: string) => string,
|
|
15
15
|
returning?: string, // '*' | ' "anyFieldName1", "anyFieldName2"'
|
|
16
|
+
conflictFields?: string[],
|
|
17
|
+
updateFields?: string[],
|
|
16
18
|
}): Promise<string> => {
|
|
17
19
|
const {
|
|
18
20
|
connectionId,
|
|
@@ -30,6 +32,8 @@ export const getMergeSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
30
32
|
const tableSchema: ITableSchemaPg = await getTableSchemaPg(connectionId, commonSchemaAndTable);
|
|
31
33
|
const { columnsSchema, pk, fieldsWoSerialsAndRO, defaults } = tableSchema;
|
|
32
34
|
|
|
35
|
+
const conflictFields = arg.conflictFields || pk;
|
|
36
|
+
|
|
33
37
|
let mergeFieldsArr: string[] = fieldsWoSerialsAndRO;
|
|
34
38
|
if (omitFields.length) {
|
|
35
39
|
const set = new Set(omitFields);
|
|
@@ -50,7 +54,7 @@ export const getMergeSqlPg = async <U extends TDBRecord = TDBRecord> (arg: {
|
|
|
50
54
|
return `(${preparedValues.join(', ')})`;
|
|
51
55
|
}).join(',\n ').trim();
|
|
52
56
|
|
|
53
|
-
let updateFieldsArr: string[] = mergeFieldsArr;
|
|
57
|
+
let updateFieldsArr: string[] = arg.updateFields || mergeFieldsArr;
|
|
54
58
|
if (fieldsExcludedFromUpdatePart?.length) {
|
|
55
59
|
const set = new Set(fieldsExcludedFromUpdatePart);
|
|
56
60
|
updateFieldsArr = mergeFieldsArr.filter((fieldName) => !set.has(fieldName));
|
|
@@ -75,7 +79,7 @@ INSERT INTO ${schemaTableStr} (
|
|
|
75
79
|
)
|
|
76
80
|
VALUES
|
|
77
81
|
${mergeValues}
|
|
78
|
-
ON CONFLICT (${
|
|
82
|
+
ON CONFLICT (${conflictFields.map((f) => `"${f}"`).join(', ')})
|
|
79
83
|
DO UPDATE SET
|
|
80
84
|
${updateSetStr}
|
|
81
85
|
${returning ? `RETURNING ${returning}` : ''}
|