drizzle-orm 0.11.4 → 0.11.5

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 (137) hide show
  1. package/builders/aggregators/abstractAggregator.js.map +1 -1
  2. package/builders/aggregators/deleteAggregator.js.map +1 -1
  3. package/builders/aggregators/insertAggregator.js.map +1 -1
  4. package/builders/aggregators/selectAggregator.js.map +1 -1
  5. package/builders/aggregators/selectAggregatorV1.js.map +1 -1
  6. package/builders/aggregators/updateAggregator.js.map +1 -1
  7. package/builders/highLvlBuilders/abstractRequestBuilder.js.map +1 -1
  8. package/builders/highLvlBuilders/deleteRequestBuilder.js.map +1 -1
  9. package/builders/highLvlBuilders/insertRequestBuilder.js.map +1 -1
  10. package/builders/highLvlBuilders/joins/joinBuilderResponse.js.map +1 -1
  11. package/builders/highLvlBuilders/joins/proxies/joinProxies.js.map +1 -1
  12. package/builders/highLvlBuilders/joins/selectJoinBuilder.js.map +1 -1
  13. package/builders/highLvlBuilders/order.js.map +1 -1
  14. package/builders/highLvlBuilders/selectRequestBuilder.js.map +1 -1
  15. package/builders/highLvlBuilders/updateRequestBuilder.js.map +1 -1
  16. package/builders/index.js.map +1 -1
  17. package/builders/joinBuilders/builders/abstractJoinBuilder.js.map +1 -1
  18. package/builders/joinBuilders/builders/selectWithFiveJoins.js.map +1 -1
  19. package/builders/joinBuilders/builders/selectWithFourJoins.js.map +1 -1
  20. package/builders/joinBuilders/builders/selectWithJoin.js.map +1 -1
  21. package/builders/joinBuilders/builders/selectWithThreeJoins.d.ts +1 -1
  22. package/builders/joinBuilders/builders/selectWithThreeJoins.js.map +1 -1
  23. package/builders/joinBuilders/builders/selectWithTwoJoins.d.ts +1 -1
  24. package/builders/joinBuilders/builders/selectWithTwoJoins.js.map +1 -1
  25. package/builders/joinBuilders/join.js.map +1 -1
  26. package/builders/joinBuilders/joinWith.js.map +1 -1
  27. package/builders/joinBuilders/responses/selectResponseFiveJoins.js.map +1 -1
  28. package/builders/joinBuilders/responses/selectResponseFourJoins.js.map +1 -1
  29. package/builders/joinBuilders/responses/selectResponseThreeJoins.js.map +1 -1
  30. package/builders/joinBuilders/responses/selectResponseTwoJoins.js.map +1 -1
  31. package/builders/joinBuilders/responses/selectResponseWithJoin.js.map +1 -1
  32. package/builders/joinBuilders/static.js.map +1 -1
  33. package/builders/lowLvlBuilders/alter.js.map +1 -1
  34. package/builders/lowLvlBuilders/create.js.map +1 -1
  35. package/builders/lowLvlBuilders/delets/delete.js.map +1 -1
  36. package/builders/lowLvlBuilders/delets/deleteFilter.js.map +1 -1
  37. package/builders/lowLvlBuilders/delets/deleteFrom.js.map +1 -1
  38. package/builders/lowLvlBuilders/inserts/insert.js.map +1 -1
  39. package/builders/lowLvlBuilders/inserts/insertInto.js.map +1 -1
  40. package/builders/lowLvlBuilders/inserts/onConflictInsert.js.map +1 -1
  41. package/builders/lowLvlBuilders/inserts/valuesInsert.js.map +1 -1
  42. package/builders/lowLvlBuilders/selects/select.js.map +1 -1
  43. package/builders/lowLvlBuilders/selects/selectFrom.js.map +1 -1
  44. package/builders/lowLvlBuilders/selects/selectJoined.js.map +1 -1
  45. package/builders/lowLvlBuilders/selects/whereSelect.js.map +1 -1
  46. package/builders/lowLvlBuilders/updates/update.js.map +1 -1
  47. package/builders/lowLvlBuilders/updates/updateIn.js.map +1 -1
  48. package/builders/lowLvlBuilders/updates/whereSelect.js.map +1 -1
  49. package/builders/lowLvlBuilders/updates/whereSet.js.map +1 -1
  50. package/builders/requestBuilders/updates/combine.js.map +1 -1
  51. package/builders/requestBuilders/updates/increment.js.map +1 -1
  52. package/builders/requestBuilders/updates/setObjects.js.map +1 -1
  53. package/builders/requestBuilders/updates/static.js.map +1 -1
  54. package/builders/requestBuilders/updates/updates.js.map +1 -1
  55. package/builders/requestBuilders/where/and.js.map +1 -1
  56. package/builders/requestBuilders/where/const.js.map +1 -1
  57. package/builders/requestBuilders/where/constArray.js.map +1 -1
  58. package/builders/requestBuilders/where/eqWhere.js.map +1 -1
  59. package/builders/requestBuilders/where/greater.js.map +1 -1
  60. package/builders/requestBuilders/where/greaterEq.js.map +1 -1
  61. package/builders/requestBuilders/where/in.js.map +1 -1
  62. package/builders/requestBuilders/where/isNotNull.js.map +1 -1
  63. package/builders/requestBuilders/where/isNull.js.map +1 -1
  64. package/builders/requestBuilders/where/less.js.map +1 -1
  65. package/builders/requestBuilders/where/lessEq.js.map +1 -1
  66. package/builders/requestBuilders/where/like.js.map +1 -1
  67. package/builders/requestBuilders/where/notEqWhere.js.map +1 -1
  68. package/builders/requestBuilders/where/or.js.map +1 -1
  69. package/builders/requestBuilders/where/rawWhere.js.map +1 -1
  70. package/builders/requestBuilders/where/static.js.map +1 -1
  71. package/builders/requestBuilders/where/var.js.map +1 -1
  72. package/builders/requestBuilders/where/where.js.map +1 -1
  73. package/builders/transaction/transaction.js.map +1 -1
  74. package/columns/column.js.map +1 -1
  75. package/columns/index.js.map +1 -1
  76. package/columns/types/columnType.js.map +1 -1
  77. package/columns/types/pgBigDecimal.js.map +1 -1
  78. package/columns/types/pgBigInt.js.map +1 -1
  79. package/columns/types/pgBigSerial.js.map +1 -1
  80. package/columns/types/pgBoolean.js.map +1 -1
  81. package/columns/types/pgEnum.js.map +1 -1
  82. package/columns/types/pgInteger.js.map +1 -1
  83. package/columns/types/pgJsonb.js.map +1 -1
  84. package/columns/types/pgSerial.js.map +1 -1
  85. package/columns/types/pgSmallInt.js.map +1 -1
  86. package/columns/types/pgText.js.map +1 -1
  87. package/columns/types/pgTime.js.map +1 -1
  88. package/columns/types/pgTimestamp.js.map +1 -1
  89. package/columns/types/pgTimestamptz.js.map +1 -1
  90. package/columns/types/pgVarChar.js.map +1 -1
  91. package/db/db.js.map +1 -1
  92. package/db/dbConnector.js.map +1 -1
  93. package/db/dbStringConnector.js.map +1 -1
  94. package/db/group_by.js.map +1 -1
  95. package/db/index.js.map +1 -1
  96. package/db/session.js.map +1 -1
  97. package/docs/cases/simple_delete.js.map +1 -1
  98. package/docs/cases/simple_insert.js.map +1 -1
  99. package/docs/cases/simple_join.js.map +1 -1
  100. package/docs/cases/simple_select.js.map +1 -1
  101. package/docs/cases/simple_update.js.map +1 -1
  102. package/docs/tables/citiesTable.js.map +1 -1
  103. package/docs/tables/userGroupsTable.js.map +1 -1
  104. package/docs/tables/usersTable.js.map +1 -1
  105. package/docs/tables/usersToUserGroups.js.map +1 -1
  106. package/docs/types/rolesType.js.map +1 -1
  107. package/errors/baseError.js.map +1 -1
  108. package/errors/builderError.js.map +1 -1
  109. package/errors/dbErrors.js.map +1 -1
  110. package/index.js.map +1 -1
  111. package/indexes/tableIndex.js.map +1 -1
  112. package/logger/abstractLogger.js.map +1 -1
  113. package/logger/consoleLogger.js.map +1 -1
  114. package/mappers/index.js.map +1 -1
  115. package/mappers/responseMapper.js.map +1 -1
  116. package/migrator/index.js.map +1 -1
  117. package/migrator/migrator.js.map +1 -1
  118. package/package.json +2 -3
  119. package/serializer/serializer.d.ts +0 -58
  120. package/serializer/serializer.js +293 -258
  121. package/serializer/serializer.js.map +1 -1
  122. package/tables/abstractTable.d.ts +4 -0
  123. package/tables/abstractTable.js +17 -2
  124. package/tables/abstractTable.js.map +1 -1
  125. package/tables/index.js.map +1 -1
  126. package/tables/inferTypes.js.map +1 -1
  127. package/tables/migrationsTable.js.map +1 -1
  128. package/{builders/requestBuilders/where/static.spec.d.ts → test.d.ts} +0 -0
  129. package/test.js +193 -0
  130. package/test.js.map +1 -0
  131. package/types/type.js.map +1 -1
  132. package/utils/ecranate.js.map +1 -1
  133. package/utils/escape.d.ts +2 -0
  134. package/utils/escape.js +9 -0
  135. package/utils/escape.js.map +1 -0
  136. package/builders/requestBuilders/where/static.spec.js +0 -60
  137. package/builders/requestBuilders/where/static.spec.js.map +0 -1
@@ -1,260 +1,295 @@
1
1
  "use strict";
2
- /* eslint-disable max-classes-per-file */
3
- /* eslint-disable import/no-named-as-default-member */
4
- /* eslint-disable import/no-named-as-default */
5
- /* eslint-disable no-param-reassign */
6
- /* eslint-disable no-restricted-syntax */
7
- var __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- const columns_1 = require("../columns");
12
- const tableIndex_1 = __importDefault(require("../indexes/tableIndex"));
13
- // eslint-disable-next-line max-len
14
- const serialiseForeignKey = (fkName, table, column, onDelete, onUpdate) => `${fkName};${table};${column};${onDelete !== null && onDelete !== void 0 ? onDelete : ''};${onUpdate !== null && onUpdate !== void 0 ? onUpdate : ''}`;
15
- class MigrationSerializer {
16
- constructor() {
17
- this.generate = (tables, enums) => {
18
- const result = {};
19
- for (const table of tables) {
20
- const tableEntries = Object.entries(table);
21
- const columnToReturn = {};
22
- const indexToReturn = {};
23
- for (const properties of tableEntries) {
24
- const value = properties[1];
25
- if (value instanceof tableIndex_1.default) {
26
- const columns = value.getColumns();
27
- const name = value.indexName();
28
- const indexColumnToReturn = {};
29
- for (const column of columns) {
30
- const columnName = column.getColumnName();
31
- indexColumnToReturn[columnName] = {
32
- name: columnName,
33
- };
34
- }
35
- indexToReturn[name] = {
36
- name,
37
- columns: indexColumnToReturn,
38
- isUnique: value.isUnique(),
39
- };
40
- }
41
- if (value instanceof columns_1.Column) {
42
- columnToReturn[value.getColumnName()] = {
43
- name: value.getColumnName(),
44
- type: value.getColumnType().getDbName(),
45
- primaryKey: !!value.primaryKeyName,
46
- // unique: !!value.uniqueKeyName,
47
- // default: value.getDefaultValue() === null ? undefined : value.getDefaultValue(),
48
- notNull: !value.isNullableFlag,
49
- };
50
- if (value.getDefaultValue() !== undefined && value.getDefaultValue() !== null) {
51
- columnToReturn[value.getColumnName()].default = value.getDefaultValue().toJSON();
52
- }
53
- if (value.uniqueKeyName) {
54
- const indexName = `${value.getParent().tableName()}_${value.getColumnName()}_index`;
55
- const indexColumnToReturn = {};
56
- indexColumnToReturn[value.getColumnName()] = {
57
- name: value.getColumnName(),
58
- };
59
- indexToReturn[indexName] = {
60
- name: indexName,
61
- columns: indexColumnToReturn,
62
- isUnique: true,
63
- };
64
- }
65
- const referenced = value.getReferenced();
66
- if (referenced) {
67
- const fkName = `${value.getParent().tableName()}_${value.getColumnName()}_fkey`;
68
- const tableParentName = referenced.getParentName();
69
- const column = referenced.getColumnName();
70
- const onDelete = value.getOnDelete();
71
- const onUpdate = value.getOnUpdate();
72
- // eslint-disable-next-line max-len
73
- const referenceString = serialiseForeignKey(fkName, tableParentName, column, onDelete, onUpdate);
74
- columnToReturn[value.getColumnName()].references = referenceString;
75
- }
76
- }
77
- }
78
- result[table.tableName()] = {
79
- name: table.tableName(),
80
- columns: columnToReturn,
81
- indexes: indexToReturn,
82
- };
83
- }
84
- const enumsToReturn = enums.reduce((map, obj) => {
85
- const key = obj.name;
86
- const newValues = obj.values.reduce((mapped, value) => {
87
- mapped[value] = value;
88
- return mapped;
89
- }, {});
90
- map[key] = { name: obj.name, values: newValues };
91
- return map;
92
- }, {});
93
- return { version: '2', tables: result, enums: enumsToReturn };
94
- };
95
- this.fromDatabase = async (db) => {
96
- var _a;
97
- const result = {};
98
- const allTables = await db.session().execute('SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema != \'pg_catalog\' and table_schema != \'information_schema\';');
99
- for await (const row of allTables.rows) {
100
- try {
101
- // const tableSchema = row.table_schema;
102
- const tableName = row.table_name;
103
- const columnToReturn = {};
104
- const indexToReturn = {};
105
- const tableResponse = await db.session().execute(`SELECT a.attrelid::regclass::text, a.attname
106
- , CASE WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[])
107
- AND EXISTS (
108
- SELECT FROM pg_attrdef ad
109
- WHERE ad.adrelid = a.attrelid
110
- AND ad.adnum = a.attnum
111
- AND pg_get_expr(ad.adbin, ad.adrelid)
112
- = 'nextval('''
113
- || (pg_get_serial_sequence (a.attrelid::regclass::text
114
- , a.attname))::regclass
115
- || '''::regclass)'
116
- )
117
- THEN CASE a.atttypid
118
- WHEN 'int'::regtype THEN 'serial'
119
- WHEN 'int8'::regtype THEN 'bigserial'
120
- WHEN 'int2'::regtype THEN 'smallserial'
121
- END
122
- ELSE format_type(a.atttypid, a.atttypmod)
123
- END AS data_type, INFORMATION_SCHEMA.COLUMNS.table_name, INFORMATION_SCHEMA.COLUMNS.column_name, INFORMATION_SCHEMA.COLUMNS.column_default
124
- FROM pg_attribute a
125
- JOIN INFORMATION_SCHEMA.COLUMNS ON INFORMATION_SCHEMA.COLUMNS.column_name = a.attname
126
- WHERE a.attrelid = '${tableName}'::regclass and INFORMATION_SCHEMA.COLUMNS.table_name = '${tableName}'
127
- AND a.attnum > 0
128
- AND NOT a.attisdropped
129
- ORDER BY a.attnum;`);
130
- const tableConstraints = await db.session().execute(`SELECT c.column_name, c.data_type, constraint_type, constraint_name
131
- FROM information_schema.table_constraints tc
132
- JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
133
- JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
134
- AND tc.table_name = c.table_name AND ccu.column_name = c.column_name
135
- WHERE tc.table_name = '${tableName}';`);
136
- const tableForeignKeys = await db.session().execute(`SELECT
137
- tc.table_schema,
138
- tc.constraint_name,
139
- tc.table_name,
140
- kcu.column_name,
141
- ccu.table_schema AS foreign_table_schema,
142
- ccu.table_name AS foreign_table_name,
143
- ccu.column_name AS foreign_column_name,
144
- rc.delete_rule, rc.update_rule
145
- FROM
146
- information_schema.table_constraints AS tc
147
- JOIN information_schema.key_column_usage AS kcu
148
- ON tc.constraint_name = kcu.constraint_name
149
- AND tc.table_schema = kcu.table_schema
150
- JOIN information_schema.constraint_column_usage AS ccu
151
- ON ccu.constraint_name = tc.constraint_name
152
- AND ccu.table_schema = tc.table_schema
153
- JOIN information_schema.referential_constraints AS rc
154
- ON ccu.constraint_name = rc.constraint_name
155
- WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='${tableName}';`);
156
- const mappedRefernces = {};
157
- for (const fk of tableForeignKeys.rows) {
158
- // const tableFrom = fk.table_name;
159
- const columnFrom = fk.column_name;
160
- const tableTo = fk.foreign_table_name;
161
- const columnTo = fk.foreign_column_name;
162
- const foreignKeyName = fk.constraint_name;
163
- const onUpdate = fk.update_rule;
164
- const onDelete = fk.delete_rule;
165
- // eslint-disable-next-line max-len
166
- const references = serialiseForeignKey(foreignKeyName, tableTo, columnTo, onDelete, onUpdate);
167
- mappedRefernces[columnFrom] = references;
168
- }
169
- for (const columnResponse of tableResponse.rows) {
170
- const columnName = columnResponse.attname;
171
- const columnType = columnResponse.data_type;
172
- const primaryKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'PRIMARY KEY');
173
- const uniqueKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'UNIQUE');
174
- const defaultValue = columnResponse.column_default === null
175
- ? undefined : columnResponse.column_default;
176
- const isSerial = columnType === 'serial';
177
- columnToReturn[columnName] = {
178
- name: columnName,
179
- type: columnType,
180
- primaryKey: !!primaryKey[0],
181
- unique: !!uniqueKey[0],
182
- default: isSerial ? undefined : defaultValue,
183
- notNull: !columnResponse.is_nullable,
184
- references: (_a = mappedRefernces[columnName]) !== null && _a !== void 0 ? _a : undefined,
185
- };
186
- }
187
- const dbIndexes = await db.session().execute(`select
188
- t.relname as table_name,
189
- i.relname as index_name,
190
- a.attname as column_name
191
- from
192
- pg_class t,
193
- pg_class i,
194
- pg_index ix,
195
- pg_attribute a
196
- where
197
- t.oid = ix.indrelid
198
- and i.oid = ix.indexrelid
199
- and a.attrelid = t.oid
200
- and a.attnum = ANY(ix.indkey)
201
- and t.relkind = 'r'
202
- and t.relname = '${tableName}'
203
- order by
204
- t.relname,
205
- i.relname;`);
206
- for (const dbIndex of dbIndexes.rows) {
207
- const indexName = dbIndex.index_name;
208
- const indexColumnName = dbIndex.column_name;
209
- if (indexToReturn[indexName] !== undefined && indexToReturn[indexName] !== null) {
210
- indexToReturn[indexName].columns[indexColumnName] = {
211
- name: indexColumnName,
212
- };
213
- }
214
- else {
215
- indexToReturn[indexName] = {
216
- name: indexName,
217
- columns: {
218
- [indexColumnName]: {
219
- name: indexColumnName,
220
- },
221
- },
222
- };
223
- }
224
- }
225
- result[tableName] = {
226
- name: tableName,
227
- columns: columnToReturn,
228
- indexes: indexToReturn,
229
- };
230
- }
231
- catch (e) {
232
- console.log(e);
233
- }
234
- }
235
- const allEnums = await db.session().execute(`select n.nspname as enum_schema,
236
- t.typname as enum_name,
237
- e.enumlabel as enum_value
238
- from pg_type t
239
- join pg_enum e on t.oid = e.enumtypid
240
- join pg_catalog.pg_namespace n ON n.oid = t.typnamespace;`);
241
- const enumsToReturn = {};
242
- for (const dbEnum of allEnums.rows) {
243
- const enumName = dbEnum.enum_name;
244
- const enumValue = dbEnum.enum_value;
245
- if (enumsToReturn[enumName] !== undefined && enumsToReturn[enumName] !== null) {
246
- enumsToReturn[enumName].values.push(enumValue);
247
- }
248
- else {
249
- enumsToReturn[enumName] = {
250
- name: enumName,
251
- values: [enumValue],
252
- };
253
- }
254
- }
255
- return { version: '2', tables: result, enums: enumsToReturn };
256
- };
257
- }
258
- }
259
- exports.default = MigrationSerializer;
2
+ /* eslint-disable max-len */
3
+ // /* eslint-disable max-classes-per-file */
4
+ // /* eslint-disable import/no-named-as-default-member */
5
+ // /* eslint-disable import/no-named-as-default */
6
+ // /* eslint-disable no-param-reassign */
7
+ // /* eslint-disable no-restricted-syntax */
8
+ // import { Column } from '../columns';
9
+ // import ColumnType from '../columns/types/columnType';
10
+ // import { DB } from '../db';
11
+ // import TableIndex from '../indexes/tableIndex';
12
+ // import { AbstractTable } from '../tables';
13
+ // import Enum from '../types/type';
14
+ // export interface EnumsAsObject {
15
+ // [name: string]: {
16
+ // name: string,
17
+ // values: string[]
18
+ // }
19
+ // }
20
+ // export interface ColumnAsObject {
21
+ // [name: string]: {
22
+ // name?: string;
23
+ // type?: string;
24
+ // primaryKey?: boolean;
25
+ // unique?: boolean;
26
+ // default?: any;
27
+ // notNull?: boolean;
28
+ // references?: string;
29
+ // };
30
+ // }
31
+ // export interface IndexColumnAsObject {
32
+ // [name: string]: {
33
+ // name?: string;
34
+ // };
35
+ // }
36
+ // export interface IndexAsObject {
37
+ // [name: string]: {
38
+ // name?: string;
39
+ // columns?: ColumnAsObject;
40
+ // isUnique?: boolean
41
+ // };
42
+ // }
43
+ // export interface TableAsObject {
44
+ // [name: string]: {
45
+ // name: string;
46
+ // columns: ColumnAsObject;
47
+ // indexes: {
48
+ // [name: string]: {
49
+ // name?: string;
50
+ // type?: string;
51
+ // };
52
+ // };
53
+ // };
54
+ // }
55
+ // // eslint-disable-next-line max-len
56
+ // const serialiseForeignKey = (fkName:string, table:string, column:string, onDelete?:string, onUpdate?:string) => `${fkName};${table};${column};${onDelete ?? ''};${onUpdate ?? ''}`;
57
+ // export default class MigrationSerializer {
58
+ // public generate = (tables: AbstractTable<any>[], enums: Enum<any>[]) => {
59
+ // const result: TableAsObject = {};
60
+ // for (const table of tables) {
61
+ // const tableEntries = Object.entries(table);
62
+ // const columnToReturn: ColumnAsObject = {};
63
+ // const indexToReturn: IndexAsObject = {};
64
+ // for (const properties of tableEntries) {
65
+ // const value = properties[1];
66
+ // if (value instanceof TableIndex) {
67
+ // const columns = value.getColumns();
68
+ // const name = value.indexName();
69
+ // const indexColumnToReturn: IndexColumnAsObject = {};
70
+ // for (const column of columns) {
71
+ // const columnName = column.getColumnName();
72
+ // indexColumnToReturn[columnName] = {
73
+ // name: columnName,
74
+ // };
75
+ // }
76
+ // indexToReturn[name] = {
77
+ // name,
78
+ // columns: indexColumnToReturn,
79
+ // isUnique: value.isUnique(),
80
+ // };
81
+ // }
82
+ // if (value instanceof Column) {
83
+ // columnToReturn[value.getColumnName()] = {
84
+ // name: value.getColumnName(),
85
+ // type: (value.getColumnType() as ColumnType).getDbName(),
86
+ // primaryKey: !!value.primaryKeyName,
87
+ // // unique: !!value.uniqueKeyName,
88
+ // // default: value.getDefaultValue() === null ? undefined : value.getDefaultValue(),
89
+ // notNull: !value.isNullableFlag,
90
+ // };
91
+ // if (value.getDefaultValue() !== undefined && value.getDefaultValue() !== null) {
92
+ // columnToReturn[value.getColumnName()].default = value.getDefaultValue().toJSON();
93
+ // }
94
+ // if (value.uniqueKeyName) {
95
+ // const indexName = `${value.getParent().tableName()}_${value.getColumnName()}_index`;
96
+ // const indexColumnToReturn: IndexColumnAsObject = {};
97
+ // indexColumnToReturn[value.getColumnName()] = {
98
+ // name: value.getColumnName(),
99
+ // };
100
+ // indexToReturn[indexName] = {
101
+ // name: indexName,
102
+ // columns: indexColumnToReturn,
103
+ // isUnique: true,
104
+ // };
105
+ // }
106
+ // const referenced = value.getReferenced();
107
+ // if (referenced) {
108
+ // const fkName = `${value.getParent().tableName()}_${value.getColumnName()}_fkey`;
109
+ // const tableParentName = referenced.getParentName();
110
+ // const column = referenced.getColumnName();
111
+ // const onDelete = value.getOnDelete();
112
+ // const onUpdate = value.getOnUpdate();
113
+ // // eslint-disable-next-line max-len
114
+ // const referenceString = serialiseForeignKey(fkName, tableParentName, column, onDelete, onUpdate);
115
+ // columnToReturn[value.getColumnName()].references = referenceString;
116
+ // }
117
+ // }
118
+ // }
119
+ // result[table.tableName()] = {
120
+ // name: table.tableName(),
121
+ // columns: columnToReturn,
122
+ // indexes: indexToReturn,
123
+ // };
124
+ // }
125
+ // const enumsToReturn = enums.reduce<{[key:string]: Enum<any>}>((map, obj) => {
126
+ // const key = obj.name;
127
+ // const newValues = obj.values.reduce((mapped, value) => {
128
+ // mapped[value] = value;
129
+ // return mapped;
130
+ // }, {});
131
+ // map[key] = { name: obj.name, values: newValues };
132
+ // return map;
133
+ // }, {});
134
+ // return { version: '2', tables: result, enums: enumsToReturn };
135
+ // };
136
+ // public fromDatabase = async (db: DB) => {
137
+ // const result: TableAsObject = {};
138
+ // const allTables = await db.session().execute('SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema != \'pg_catalog\' and table_schema != \'information_schema\';');
139
+ // for await (const row of allTables.rows) {
140
+ // try {
141
+ // // const tableSchema = row.table_schema;
142
+ // const tableName = row.table_name;
143
+ // const columnToReturn: ColumnAsObject = {};
144
+ // const indexToReturn: IndexAsObject = {};
145
+ // const tableResponse = await db.session().execute(`SELECT a.attrelid::regclass::text, a.attname
146
+ // , CASE WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[])
147
+ // AND EXISTS (
148
+ // SELECT FROM pg_attrdef ad
149
+ // WHERE ad.adrelid = a.attrelid
150
+ // AND ad.adnum = a.attnum
151
+ // AND pg_get_expr(ad.adbin, ad.adrelid)
152
+ // = 'nextval('''
153
+ // || (pg_get_serial_sequence (a.attrelid::regclass::text
154
+ // , a.attname))::regclass
155
+ // || '''::regclass)'
156
+ // )
157
+ // THEN CASE a.atttypid
158
+ // WHEN 'int'::regtype THEN 'serial'
159
+ // WHEN 'int8'::regtype THEN 'bigserial'
160
+ // WHEN 'int2'::regtype THEN 'smallserial'
161
+ // END
162
+ // ELSE format_type(a.atttypid, a.atttypmod)
163
+ // END AS data_type, INFORMATION_SCHEMA.COLUMNS.table_name, INFORMATION_SCHEMA.COLUMNS.column_name, INFORMATION_SCHEMA.COLUMNS.column_default
164
+ // FROM pg_attribute a
165
+ // JOIN INFORMATION_SCHEMA.COLUMNS ON INFORMATION_SCHEMA.COLUMNS.column_name = a.attname
166
+ // WHERE a.attrelid = '${tableName}'::regclass and INFORMATION_SCHEMA.COLUMNS.table_name = '${tableName}'
167
+ // AND a.attnum > 0
168
+ // AND NOT a.attisdropped
169
+ // ORDER BY a.attnum;`);
170
+ // const tableConstraints = await db.session().execute(`SELECT c.column_name, c.data_type, constraint_type, constraint_name
171
+ // FROM information_schema.table_constraints tc
172
+ // JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
173
+ // JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
174
+ // AND tc.table_name = c.table_name AND ccu.column_name = c.column_name
175
+ // WHERE tc.table_name = '${tableName}';`);
176
+ // const tableForeignKeys = await db.session().execute(`SELECT
177
+ // tc.table_schema,
178
+ // tc.constraint_name,
179
+ // tc.table_name,
180
+ // kcu.column_name,
181
+ // ccu.table_schema AS foreign_table_schema,
182
+ // ccu.table_name AS foreign_table_name,
183
+ // ccu.column_name AS foreign_column_name,
184
+ // rc.delete_rule, rc.update_rule
185
+ // FROM
186
+ // information_schema.table_constraints AS tc
187
+ // JOIN information_schema.key_column_usage AS kcu
188
+ // ON tc.constraint_name = kcu.constraint_name
189
+ // AND tc.table_schema = kcu.table_schema
190
+ // JOIN information_schema.constraint_column_usage AS ccu
191
+ // ON ccu.constraint_name = tc.constraint_name
192
+ // AND ccu.table_schema = tc.table_schema
193
+ // JOIN information_schema.referential_constraints AS rc
194
+ // ON ccu.constraint_name = rc.constraint_name
195
+ // WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='${tableName}';`);
196
+ // const mappedRefernces: { [name: string]: string } = {};
197
+ // for (const fk of tableForeignKeys.rows) {
198
+ // // const tableFrom = fk.table_name;
199
+ // const columnFrom = fk.column_name;
200
+ // const tableTo = fk.foreign_table_name;
201
+ // const columnTo = fk.foreign_column_name;
202
+ // const foreignKeyName = fk.constraint_name;
203
+ // const onUpdate = fk.update_rule;
204
+ // const onDelete = fk.delete_rule;
205
+ // // eslint-disable-next-line max-len
206
+ // const references = serialiseForeignKey(foreignKeyName, tableTo, columnTo, onDelete, onUpdate);
207
+ // mappedRefernces[columnFrom] = references;
208
+ // }
209
+ // for (const columnResponse of tableResponse.rows) {
210
+ // const columnName = columnResponse.attname;
211
+ // const columnType = columnResponse.data_type;
212
+ // const primaryKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'PRIMARY KEY');
213
+ // const uniqueKey = tableConstraints.rows.filter((mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === 'UNIQUE');
214
+ // const defaultValue: string = columnResponse.column_default === null
215
+ // ? undefined : columnResponse.column_default;
216
+ // const isSerial = columnType === 'serial';
217
+ // columnToReturn[columnName] = {
218
+ // name: columnName,
219
+ // type: columnType,
220
+ // primaryKey: !!primaryKey[0],
221
+ // unique: !!uniqueKey[0],
222
+ // default: isSerial ? undefined : defaultValue,
223
+ // notNull: !columnResponse.is_nullable,
224
+ // references: mappedRefernces[columnName] ?? undefined,
225
+ // };
226
+ // }
227
+ // const dbIndexes = await db.session().execute(`select
228
+ // t.relname as table_name,
229
+ // i.relname as index_name,
230
+ // a.attname as column_name
231
+ // from
232
+ // pg_class t,
233
+ // pg_class i,
234
+ // pg_index ix,
235
+ // pg_attribute a
236
+ // where
237
+ // t.oid = ix.indrelid
238
+ // and i.oid = ix.indexrelid
239
+ // and a.attrelid = t.oid
240
+ // and a.attnum = ANY(ix.indkey)
241
+ // and t.relkind = 'r'
242
+ // and t.relname = '${tableName}'
243
+ // order by
244
+ // t.relname,
245
+ // i.relname;`);
246
+ // for (const dbIndex of dbIndexes.rows) {
247
+ // const indexName = dbIndex.index_name;
248
+ // const indexColumnName = dbIndex.column_name;
249
+ // if (indexToReturn[indexName] !== undefined && indexToReturn[indexName] !== null) {
250
+ // indexToReturn[indexName]!.columns![indexColumnName] = {
251
+ // name: indexColumnName,
252
+ // };
253
+ // } else {
254
+ // indexToReturn[indexName] = {
255
+ // name: indexName,
256
+ // columns: {
257
+ // [indexColumnName]: {
258
+ // name: indexColumnName,
259
+ // },
260
+ // },
261
+ // };
262
+ // }
263
+ // }
264
+ // result[tableName] = {
265
+ // name: tableName,
266
+ // columns: columnToReturn,
267
+ // indexes: indexToReturn,
268
+ // };
269
+ // } catch (e) {
270
+ // console.log(e);
271
+ // }
272
+ // }
273
+ // const allEnums = await db.session().execute(`select n.nspname as enum_schema,
274
+ // t.typname as enum_name,
275
+ // e.enumlabel as enum_value
276
+ // from pg_type t
277
+ // join pg_enum e on t.oid = e.enumtypid
278
+ // join pg_catalog.pg_namespace n ON n.oid = t.typnamespace;`);
279
+ // const enumsToReturn: EnumsAsObject = {};
280
+ // for (const dbEnum of allEnums.rows) {
281
+ // const enumName = dbEnum.enum_name;
282
+ // const enumValue = dbEnum.enum_value;
283
+ // if (enumsToReturn[enumName] !== undefined && enumsToReturn[enumName] !== null) {
284
+ // enumsToReturn[enumName].values.push(enumValue);
285
+ // } else {
286
+ // enumsToReturn[enumName] = {
287
+ // name: enumName,
288
+ // values: [enumValue],
289
+ // };
290
+ // }
291
+ // }
292
+ // return { version: '2', tables: result, enums: enumsToReturn };
293
+ // };
294
+ // }
260
295
  //# sourceMappingURL=serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/serializer/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/serializer/serializer.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,4CAA4C;AAC5C,yDAAyD;AACzD,kDAAkD;AAClD,yCAAyC;AACzC,4CAA4C;AAE5C,uCAAuC;AACvC,wDAAwD;AACxD,8BAA8B;AAC9B,kDAAkD;AAClD,6CAA6C;AAC7C,oCAAoC;AAEpC,mCAAmC;AACnC,sBAAsB;AACtB,oBAAoB;AACpB,uBAAuB;AACvB,MAAM;AACN,IAAI;AAEJ,oCAAoC;AACpC,sBAAsB;AACtB,qBAAqB;AACrB,qBAAqB;AACrB,4BAA4B;AAC5B,wBAAwB;AACxB,qBAAqB;AACrB,yBAAyB;AACzB,2BAA2B;AAC3B,OAAO;AACP,IAAI;AAEJ,yCAAyC;AACzC,sBAAsB;AACtB,qBAAqB;AACrB,OAAO;AACP,IAAI;AAEJ,mCAAmC;AACnC,sBAAsB;AACtB,qBAAqB;AACrB,gCAAgC;AAChC,yBAAyB;AACzB,OAAO;AACP,IAAI;AAEJ,mCAAmC;AACnC,sBAAsB;AACtB,oBAAoB;AACpB,+BAA+B;AAC/B,iBAAiB;AACjB,0BAA0B;AAC1B,yBAAyB;AACzB,yBAAyB;AACzB,WAAW;AACX,SAAS;AACT,OAAO;AACP,IAAI;AAEJ,sCAAsC;AACtC,sLAAsL;AAEtL,6CAA6C;AAC7C,8EAA8E;AAC9E,wCAAwC;AAExC,oCAAoC;AACpC,oDAAoD;AACpD,mDAAmD;AACnD,iDAAiD;AAEjD,iDAAiD;AACjD,uCAAuC;AACvC,6CAA6C;AAC7C,gDAAgD;AAChD,4CAA4C;AAE5C,iEAAiE;AAEjE,4CAA4C;AAC5C,yDAAyD;AACzD,kDAAkD;AAClD,kCAAkC;AAClC,iBAAiB;AACjB,cAAc;AAEd,oCAAoC;AACpC,oBAAoB;AACpB,4CAA4C;AAC5C,0CAA0C;AAC1C,eAAe;AACf,YAAY;AAEZ,yCAAyC;AACzC,sDAAsD;AACtD,2CAA2C;AAC3C,uEAAuE;AACvE,kDAAkD;AAClD,gDAAgD;AAChD,kGAAkG;AAClG,8CAA8C;AAC9C,eAAe;AAEf,6FAA6F;AAC7F,gGAAgG;AAChG,cAAc;AAEd,uCAAuC;AACvC,mGAAmG;AAEnG,mEAAmE;AACnE,6DAA6D;AAC7D,6CAA6C;AAC7C,iBAAiB;AAEjB,2CAA2C;AAC3C,iCAAiC;AACjC,8CAA8C;AAC9C,gCAAgC;AAChC,iBAAiB;AACjB,cAAc;AAEd,sDAAsD;AACtD,8BAA8B;AAC9B,+FAA+F;AAC/F,kEAAkE;AAClE,yDAAyD;AACzD,oDAAoD;AACpD,oDAAoD;AAEpD,kDAAkD;AAClD,gHAAgH;AAChH,kFAAkF;AAClF,cAAc;AACd,YAAY;AACZ,UAAU;AAEV,sCAAsC;AACtC,mCAAmC;AACnC,mCAAmC;AACnC,kCAAkC;AAClC,WAAW;AACX,QAAQ;AAER,oFAAoF;AACpF,8BAA8B;AAC9B,iEAAiE;AACjE,iCAAiC;AACjC,yBAAyB;AACzB,gBAAgB;AAEhB,0DAA0D;AAC1D,oBAAoB;AACpB,cAAc;AAEd,qEAAqE;AACrE,OAAO;AAEP,8CAA8C;AAC9C,wCAAwC;AAExC,uMAAuM;AACvM,gDAAgD;AAChD,cAAc;AACd,mDAAmD;AACnD,4CAA4C;AAE5C,qDAAqD;AACrD,mDAAmD;AAEnD,yGAAyG;AACzG,sEAAsE;AACtE,4BAA4B;AAC5B,4CAA4C;AAC5C,iDAAiD;AACjD,+CAA+C;AAC/C,2DAA2D;AAC3D,sCAAsC;AACtC,6EAA6E;AAC7E,uEAAuE;AACvE,yCAAyC;AACzC,oBAAoB;AACpB,kCAAkC;AAClC,wDAAwD;AACxD,2DAA2D;AAC3D,6DAA6D;AAC7D,sBAAsB;AACtB,uDAAuD;AACvD,wJAAwJ;AACxJ,2BAA2B;AAC3B,2FAA2F;AAC3F,6GAA6G;AAC7G,yBAAyB;AACzB,+BAA+B;AAC/B,4BAA4B;AAC5B,mIAAmI;AACnI,qDAAqD;AACrD,0GAA0G;AAC1G,sFAAsF;AACtF,+EAA+E;AAC/E,iDAAiD;AAEjD,sEAAsE;AACtE,2BAA2B;AAC3B,8BAA8B;AAC9B,yBAAyB;AACzB,2BAA2B;AAC3B,oDAAoD;AACpD,gDAAgD;AAChD,kDAAkD;AAClD,yCAAyC;AACzC,WAAW;AACX,qDAAqD;AACrD,0DAA0D;AAC1D,wDAAwD;AACxD,mDAAmD;AACnD,iEAAiE;AACjE,wDAAwD;AACxD,mDAAmD;AACnD,gEAAgE;AAChE,wDAAwD;AACxD,oFAAoF;AAEpF,kEAAkE;AAElE,oDAAoD;AACpD,gDAAgD;AAChD,+CAA+C;AAC/C,mDAAmD;AACnD,qDAAqD;AACrD,uDAAuD;AACvD,6CAA6C;AAC7C,6CAA6C;AAC7C,gDAAgD;AAChD,2GAA2G;AAC3G,sDAAsD;AACtD,YAAY;AAEZ,6DAA6D;AAC7D,uDAAuD;AACvD,yDAAyD;AAEzD,wJAAwJ;AACxJ,kJAAkJ;AAElJ,gFAAgF;AAChF,2DAA2D;AAE3D,sDAAsD;AAEtD,2CAA2C;AAC3C,gCAAgC;AAChC,gCAAgC;AAChC,2CAA2C;AAC3C,sCAAsC;AACtC,4DAA4D;AAC5D,oDAAoD;AACpD,oEAAoE;AACpE,eAAe;AACf,YAAY;AAEZ,+DAA+D;AAC/D,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,WAAW;AACX,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB,yBAAyB;AACzB,YAAY;AACZ,8BAA8B;AAC9B,oCAAoC;AACpC,iCAAiC;AACjC,wCAAwC;AACxC,8BAA8B;AAC9B,yCAAyC;AACzC,eAAe;AACf,qBAAqB;AACrB,wBAAwB;AAExB,kDAAkD;AAClD,kDAAkD;AAClD,yDAAyD;AAEzD,+FAA+F;AAC/F,sEAAsE;AACtE,uCAAuC;AACvC,iBAAiB;AACjB,qBAAqB;AACrB,2CAA2C;AAC3C,iCAAiC;AACjC,2BAA2B;AAC3B,uCAAuC;AACvC,2CAA2C;AAC3C,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,cAAc;AACd,YAAY;AAEZ,gCAAgC;AAChC,6BAA6B;AAC7B,qCAAqC;AACrC,oCAAoC;AACpC,aAAa;AACb,sBAAsB;AACtB,0BAA0B;AAC1B,UAAU;AACV,QAAQ;AAER,oFAAoF;AACpF,8BAA8B;AAC9B,gCAAgC;AAChC,qBAAqB;AACrB,4CAA4C;AAC5C,mEAAmE;AAEnE,+CAA+C;AAE/C,4CAA4C;AAC5C,2CAA2C;AAC3C,6CAA6C;AAE7C,yFAAyF;AACzF,0DAA0D;AAC1D,iBAAiB;AACjB,sCAAsC;AACtC,4BAA4B;AAC5B,iCAAiC;AACjC,aAAa;AACb,UAAU;AACV,QAAQ;AAER,qEAAqE;AACrE,OAAO;AACP,IAAI"}