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.
@@ -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
- const linesArr = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
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":"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"}
1
+ {"version":3,"file":"gen-table-interfaces-pg.js","sourceRoot":"","sources":["../../../../src/pg/gen-table-interfaces-pg.ts"],"names":[],"mappings":"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"}
@@ -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 (${pk.map((f) => `"${f}"`).join(', ')})
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":"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"}
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
- const linesArr = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
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":"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"}
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 (${pk.map((f) => `"${f}"`).join(', ')})
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":"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"}
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,KACzB,OAAO,CAAC,IAAI,CAed,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBACjB,MAAM,UACZ,MAAM,EAAE,uBACI,MAAM,KACzB,OAAO,CAAC,IAAI,CASd,CAAC"}
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;CACpB,KAAG,OAAO,CAAC,MAAM,CAuEjB,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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "af-db-ts",
3
- "version": "3.0.15",
3
+ "version": "3.0.17",
4
4
  "description": "A highly specialized function library",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -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
- const linesArr = Object.values(tableSchema.columnsSchema).map(getFieldDefinition);
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, '/'), '')}/'`);
@@ -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 (${pk.map((f) => `"${f}"`).join(', ')})
82
+ ON CONFLICT (${conflictFields.map((f) => `"${f}"`).join(', ')})
79
83
  DO UPDATE SET
80
84
  ${updateSetStr}
81
85
  ${returning ? `RETURNING ${returning}` : ''}