pg-dump-parser 1.6.0 → 1.8.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/LICENSE +1 -1
- package/README.md +144 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/parsePgDump.d.ts +58 -36
- package/dist/parsePgDump.d.ts.map +1 -1
- package/dist/parsePgDump.js +26 -17
- package/dist/parsePgDump.js.map +1 -1
- package/dist/parsePgDump.test.js +24 -0
- package/dist/parsePgDump.test.js.map +1 -1
- package/dist/scopeSchemaObject.d.ts +1 -1
- package/dist/scopeSchemaObject.d.ts.map +1 -1
- package/dist/scopeSchemaObject.js +23 -34
- package/dist/scopeSchemaObject.js.map +1 -1
- package/dist/sortSchemaObjects.d.ts +14 -0
- package/dist/sortSchemaObjects.d.ts.map +1 -0
- package/dist/sortSchemaObjects.js +261 -0
- package/dist/sortSchemaObjects.js.map +1 -0
- package/dist/sortSchemaObjects.test.d.ts +2 -0
- package/dist/sortSchemaObjects.test.d.ts.map +1 -0
- package/dist/sortSchemaObjects.test.js +343 -0
- package/dist/sortSchemaObjects.test.js.map +1 -0
- package/package.json +13 -13
- package/src/index.ts +5 -0
- package/src/parsePgDump.test.ts +27 -3
- package/src/parsePgDump.ts +34 -25
- package/src/scopeSchemaObject.ts +9 -12
- package/src/sortSchemaObjects.test.ts +372 -0
- package/src/sortSchemaObjects.ts +323 -0
|
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.scopeSchemaObject = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const extractOwnedByTarget = (fragment) => {
|
|
6
|
-
|
|
7
|
-
const { schema, name } = (_b = (_a = fragment.match(/OWNED BY\s(?<schema>[^.]+)\.(?<name>[^.]+)/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
|
|
6
|
+
const { name, schema } = fragment.match(/OWNED BY\s(?<schema>[^.]+)\.(?<name>[^.]+)/u)?.groups ?? {};
|
|
8
7
|
if (!schema) {
|
|
9
8
|
throw new Error('Invalid OWNED BY target (missing schema)');
|
|
10
9
|
}
|
|
@@ -17,8 +16,7 @@ const extractOwnedByTarget = (fragment) => {
|
|
|
17
16
|
};
|
|
18
17
|
};
|
|
19
18
|
const extractOnTableTarget = (fragment) => {
|
|
20
|
-
|
|
21
|
-
const { schema, name } = (_b = (_a = fragment.match(/ON TABLE\s(?<schema>[^.]+)\.(?<name>\S+)/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
|
|
19
|
+
const { name, schema } = fragment.match(/ON TABLE\s(?<schema>[^.]+)\.(?<name>\S+)/u)?.groups ?? {};
|
|
22
20
|
if (!schema) {
|
|
23
21
|
throw new Error('Invalid ON TABLE target');
|
|
24
22
|
}
|
|
@@ -31,8 +29,7 @@ const extractOnTableTarget = (fragment) => {
|
|
|
31
29
|
};
|
|
32
30
|
};
|
|
33
31
|
const extractCreateIndexTarget = (fragment) => {
|
|
34
|
-
|
|
35
|
-
const { schema, name } = (_b = (_a = fragment.match(/ON\s(?<schema>[^.]+)\.(?<name>\S+)/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
|
|
32
|
+
const { name, schema } = fragment.match(/ON\s(?<schema>[^.]+)\.(?<name>\S+)/u)?.groups ?? {};
|
|
36
33
|
if (!schema) {
|
|
37
34
|
throw new Error('Invalid CREATE INDEX target');
|
|
38
35
|
}
|
|
@@ -45,8 +42,8 @@ const extractCreateIndexTarget = (fragment) => {
|
|
|
45
42
|
};
|
|
46
43
|
};
|
|
47
44
|
const extractAlterTableTarget = (fragment) => {
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
const { name, schema } = fragment.match(/ALTER TABLE (?:ONLY\s)?(?<schema>[^.]+)\.(?<name>\S+)/u)
|
|
46
|
+
?.groups ?? {};
|
|
50
47
|
if (!schema) {
|
|
51
48
|
throw new Error('Invalid ALTER TABLE target');
|
|
52
49
|
}
|
|
@@ -59,18 +56,14 @@ const extractAlterTableTarget = (fragment) => {
|
|
|
59
56
|
};
|
|
60
57
|
};
|
|
61
58
|
const extractFunctionLikeName = (fragment) => {
|
|
62
|
-
|
|
63
|
-
const { name } = (_b = (_a = fragment.match(
|
|
64
|
-
// eslint-disable-next-line unicorn/no-unsafe-regex
|
|
65
|
-
/(?:AGGREGATE|FUNCTION|PROCEDURE)\s+(?:(?<schema>\S+)\.)?(?<name>\w+)\s*\(/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
|
|
59
|
+
const { name } = fragment.match(/(?:AGGREGATE|FUNCTION|PROCEDURE)\s+(?:(?<schema>\S+)\.)?(?<name>\w+)\s*\(/u)?.groups ?? {};
|
|
66
60
|
if (!name) {
|
|
67
61
|
throw new Error('Invalid FUNCTION name');
|
|
68
62
|
}
|
|
69
63
|
return name;
|
|
70
64
|
};
|
|
71
65
|
const extractCommentOnTarget = (fragment) => {
|
|
72
|
-
|
|
73
|
-
const { target, type } = (_b = (_a = fragment.match(/COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|MATERIALIZED VIEW|PROCEDURE|SEQUENCE|TABLE|TYPE|VIEW)\s(?<target>.+?) IS/u)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
|
|
66
|
+
const { target, type } = fragment.match(/COMMENT ON (?<type>AGGREGATE|COLUMN|EXTENSION|FUNCTION|INDEX|MATERIALIZED VIEW|PROCEDURE|SEQUENCE|TABLE|TYPE|VIEW)\s(?<target>.+?) IS/u)?.groups ?? {};
|
|
74
67
|
if (!target) {
|
|
75
68
|
throw new Error('Invalid COMMENT ON target (missing target)');
|
|
76
69
|
}
|
|
@@ -84,7 +77,7 @@ const extractCommentOnTarget = (fragment) => {
|
|
|
84
77
|
};
|
|
85
78
|
const findTableLikeOwner = (schemaObjects, name, schema) => {
|
|
86
79
|
const targetSchemaObject = schemaObjects.find((schemaObject) => {
|
|
87
|
-
return (['
|
|
80
|
+
return (['MATERIALIZED VIEW', 'TABLE', 'VIEW'].includes(schemaObject.header.Type) &&
|
|
88
81
|
schemaObject.header.Name === name &&
|
|
89
82
|
schemaObject.header.Schema === schema);
|
|
90
83
|
});
|
|
@@ -97,14 +90,12 @@ const findTableLikeOwner = (schemaObjects, name, schema) => {
|
|
|
97
90
|
type: targetSchemaObject.header.Type,
|
|
98
91
|
};
|
|
99
92
|
};
|
|
100
|
-
// eslint-disable-next-line complexity
|
|
101
93
|
const scopeComment = (schemaObjects, subject) => {
|
|
102
|
-
var _a, _b, _c, _d, _e;
|
|
103
94
|
const target = extractCommentOnTarget(subject.sql);
|
|
104
95
|
if (target.type === 'AGGREGATE') {
|
|
105
96
|
return {
|
|
106
97
|
name: extractFunctionLikeName(subject.header.Name),
|
|
107
|
-
schema:
|
|
98
|
+
schema: subject.header.Schema ?? 'public',
|
|
108
99
|
type: 'AGGREGATE',
|
|
109
100
|
};
|
|
110
101
|
}
|
|
@@ -124,7 +115,7 @@ const scopeComment = (schemaObjects, subject) => {
|
|
|
124
115
|
if (target.type === 'FUNCTION') {
|
|
125
116
|
return {
|
|
126
117
|
name: extractFunctionLikeName(subject.header.Name),
|
|
127
|
-
schema:
|
|
118
|
+
schema: subject.header.Schema ?? 'public',
|
|
128
119
|
type: 'FUNCTION',
|
|
129
120
|
};
|
|
130
121
|
}
|
|
@@ -156,14 +147,14 @@ const scopeComment = (schemaObjects, subject) => {
|
|
|
156
147
|
if (target.type === 'MATERIALIZED VIEW') {
|
|
157
148
|
return {
|
|
158
149
|
name: subject.header.Name.replace('MATERIALIZED VIEW ', ''),
|
|
159
|
-
schema:
|
|
150
|
+
schema: subject.header.Schema ?? 'public',
|
|
160
151
|
type: 'MATERIALIZED VIEW',
|
|
161
152
|
};
|
|
162
153
|
}
|
|
163
154
|
if (target.type === 'PROCEDURE') {
|
|
164
155
|
return {
|
|
165
156
|
name: extractFunctionLikeName(subject.header.Name),
|
|
166
|
-
schema:
|
|
157
|
+
schema: subject.header.Schema ?? 'public',
|
|
167
158
|
type: 'PROCEDURE',
|
|
168
159
|
};
|
|
169
160
|
}
|
|
@@ -210,33 +201,31 @@ const scopeComment = (schemaObjects, subject) => {
|
|
|
210
201
|
.parse(subject.header.Name.split(' '));
|
|
211
202
|
return {
|
|
212
203
|
name: typeName,
|
|
213
|
-
schema:
|
|
204
|
+
schema: subject.header.Schema ?? 'public',
|
|
214
205
|
type: 'TYPE',
|
|
215
206
|
};
|
|
216
207
|
}
|
|
217
208
|
return null;
|
|
218
209
|
};
|
|
219
|
-
// eslint-disable-next-line complexity
|
|
220
210
|
const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
221
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
222
211
|
if (subject.header.Type === 'AGGREGATE') {
|
|
223
212
|
return {
|
|
224
213
|
name: subject.header.Name.split('(')[0],
|
|
225
|
-
schema:
|
|
214
|
+
schema: subject.header.Schema ?? 'public',
|
|
226
215
|
type: 'AGGREGATE',
|
|
227
216
|
};
|
|
228
217
|
}
|
|
229
218
|
if (subject.header.Type === 'TRIGGER') {
|
|
230
219
|
return {
|
|
231
220
|
name: subject.header.Name.split(' ')[0],
|
|
232
|
-
schema:
|
|
221
|
+
schema: subject.header.Schema ?? 'public',
|
|
233
222
|
type: 'TABLE',
|
|
234
223
|
};
|
|
235
224
|
}
|
|
236
225
|
if (subject.header.Type === 'FUNCTION') {
|
|
237
226
|
return {
|
|
238
227
|
name: subject.header.Name.split('(')[0],
|
|
239
|
-
schema:
|
|
228
|
+
schema: subject.header.Schema ?? 'public',
|
|
240
229
|
type: 'FUNCTION',
|
|
241
230
|
};
|
|
242
231
|
}
|
|
@@ -254,14 +243,14 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
254
243
|
if (subject.header.Type === 'MATERIALIZED VIEW') {
|
|
255
244
|
return {
|
|
256
245
|
name: subject.header.Name,
|
|
257
|
-
schema:
|
|
246
|
+
schema: subject.header.Schema ?? 'public',
|
|
258
247
|
type: 'MATERIALIZED VIEW',
|
|
259
248
|
};
|
|
260
249
|
}
|
|
261
250
|
if (subject.header.Type === 'PROCEDURE') {
|
|
262
251
|
return {
|
|
263
252
|
name: subject.header.Name.split('(')[0],
|
|
264
|
-
schema:
|
|
253
|
+
schema: subject.header.Schema ?? 'public',
|
|
265
254
|
type: 'PROCEDURE',
|
|
266
255
|
};
|
|
267
256
|
}
|
|
@@ -271,21 +260,21 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
271
260
|
if (subject.header.Type === 'TABLE') {
|
|
272
261
|
return {
|
|
273
262
|
name: subject.header.Name,
|
|
274
|
-
schema:
|
|
263
|
+
schema: subject.header.Schema ?? 'public',
|
|
275
264
|
type: 'TABLE',
|
|
276
265
|
};
|
|
277
266
|
}
|
|
278
267
|
if (subject.header.Type === 'TYPE') {
|
|
279
268
|
return {
|
|
280
269
|
name: subject.header.Name,
|
|
281
|
-
schema:
|
|
270
|
+
schema: subject.header.Schema ?? 'public',
|
|
282
271
|
type: 'TYPE',
|
|
283
272
|
};
|
|
284
273
|
}
|
|
285
274
|
if (subject.header.Type === 'VIEW') {
|
|
286
275
|
return {
|
|
287
276
|
name: subject.header.Name,
|
|
288
|
-
schema:
|
|
277
|
+
schema: subject.header.Schema ?? 'public',
|
|
289
278
|
type: 'VIEW',
|
|
290
279
|
};
|
|
291
280
|
}
|
|
@@ -300,14 +289,14 @@ const scopeAttributedSchemaObject = (schemaObjects, subject) => {
|
|
|
300
289
|
const ownedByTarget = extractOwnedByTarget(subject.sql);
|
|
301
290
|
return findTableLikeOwner(schemaObjects, ownedByTarget.name, ownedByTarget.schema);
|
|
302
291
|
}
|
|
303
|
-
catch
|
|
292
|
+
catch {
|
|
304
293
|
// ignore
|
|
305
294
|
}
|
|
306
295
|
try {
|
|
307
296
|
const onTableTarget = extractOnTableTarget(subject.sql);
|
|
308
297
|
return findTableLikeOwner(schemaObjects, onTableTarget.name, onTableTarget.schema);
|
|
309
298
|
}
|
|
310
|
-
catch
|
|
299
|
+
catch {
|
|
311
300
|
// ignore
|
|
312
301
|
}
|
|
313
302
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopeSchemaObject.js","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scopeSchemaObject.js","sourceRoot":"","sources":["../src/scopeSchemaObject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type SchemaObject } from './parsePgDump';
|
|
2
|
+
/**
|
|
3
|
+
* Groups schema objects by their scope (table, view, etc.) and sorts them
|
|
4
|
+
*/
|
|
5
|
+
export declare const groupAndSortSchemaObjects: (schemaObjects: SchemaObject[]) => Map<string, SchemaObject[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Sorts an array of schema objects
|
|
8
|
+
*/
|
|
9
|
+
export declare const sortSchemaObjects: (schemaObjects: SchemaObject[]) => SchemaObject[];
|
|
10
|
+
/**
|
|
11
|
+
* Sorts schema objects while preserving their grouping by scope
|
|
12
|
+
*/
|
|
13
|
+
export declare const sortSchemaObjectsByScope: (schemaObjects: SchemaObject[]) => SchemaObject[];
|
|
14
|
+
//# sourceMappingURL=sortSchemaObjects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortSchemaObjects.d.ts","sourceRoot":"","sources":["../src/sortSchemaObjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAiOzE;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,eAAe,YAAY,EAAE,KAC5B,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CA+D5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,YAAY,EAAE,KAC5B,YAAY,EAMd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,eAAe,YAAY,EAAE,KAC5B,YAAY,EASd,CAAC"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortSchemaObjectsByScope = exports.sortSchemaObjects = exports.groupAndSortSchemaObjects = void 0;
|
|
4
|
+
const scopeSchemaObject_1 = require("./scopeSchemaObject");
|
|
5
|
+
/**
|
|
6
|
+
* Sort order for different schema object types
|
|
7
|
+
*/
|
|
8
|
+
const TYPE_SORT_ORDER = {
|
|
9
|
+
// ACLs and other
|
|
10
|
+
ACL: 18,
|
|
11
|
+
AGGREGATE: 6,
|
|
12
|
+
CAST: 22,
|
|
13
|
+
// Comments
|
|
14
|
+
COMMENT: 17,
|
|
15
|
+
// Constraints (sorted by type)
|
|
16
|
+
CONSTRAINT: 11,
|
|
17
|
+
// Table modifications and defaults
|
|
18
|
+
DEFAULT: 10,
|
|
19
|
+
'DEFAULT ACL': 19,
|
|
20
|
+
// Extensions first
|
|
21
|
+
EXTENSION: 1,
|
|
22
|
+
'FK CONSTRAINT': 12,
|
|
23
|
+
// Functions and procedures
|
|
24
|
+
FUNCTION: 4,
|
|
25
|
+
// Indexes
|
|
26
|
+
INDEX: 13,
|
|
27
|
+
'MATERIALIZED VIEW': 15,
|
|
28
|
+
PROCEDURE: 5,
|
|
29
|
+
// Publications and casts
|
|
30
|
+
PUBLICATION: 21,
|
|
31
|
+
// Types and schemas
|
|
32
|
+
SCHEMA: 2,
|
|
33
|
+
SEQUENCE: 8,
|
|
34
|
+
'SEQUENCE OWNED BY': 9,
|
|
35
|
+
// Tables and sequences
|
|
36
|
+
TABLE: 7,
|
|
37
|
+
// Table attachments
|
|
38
|
+
'TABLE ATTACH': 20,
|
|
39
|
+
'TEXT SEARCH CONFIGURATION': 24,
|
|
40
|
+
// Text search
|
|
41
|
+
'TEXT SEARCH DICTIONARY': 23,
|
|
42
|
+
// Triggers
|
|
43
|
+
TRIGGER: 16,
|
|
44
|
+
TYPE: 3,
|
|
45
|
+
// Views
|
|
46
|
+
VIEW: 14,
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get the sort key for a constraint based on its type
|
|
50
|
+
*/
|
|
51
|
+
const getConstraintSortKey = (sql) => {
|
|
52
|
+
const upperSql = sql.toUpperCase();
|
|
53
|
+
if (upperSql.includes('PRIMARY KEY')) {
|
|
54
|
+
return '1_PRIMARY';
|
|
55
|
+
}
|
|
56
|
+
else if (upperSql.includes('UNIQUE')) {
|
|
57
|
+
return '2_UNIQUE';
|
|
58
|
+
}
|
|
59
|
+
else if (upperSql.includes('FOREIGN KEY')) {
|
|
60
|
+
return '3_FOREIGN';
|
|
61
|
+
}
|
|
62
|
+
else if (upperSql.includes('CHECK')) {
|
|
63
|
+
return '4_CHECK';
|
|
64
|
+
}
|
|
65
|
+
else if (upperSql.includes('EXCLUDE')) {
|
|
66
|
+
return '5_EXCLUDE';
|
|
67
|
+
}
|
|
68
|
+
return '9_OTHER';
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Compare two schema objects for sorting
|
|
72
|
+
*/
|
|
73
|
+
const compareSchemaObjects = (a, b, schemaObjects) => {
|
|
74
|
+
// Handle non-attributed headers (like database dump headers)
|
|
75
|
+
if (!('Type' in a.header) && !('Type' in b.header)) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
if (!('Type' in a.header)) {
|
|
79
|
+
return -1;
|
|
80
|
+
}
|
|
81
|
+
if (!('Type' in b.header)) {
|
|
82
|
+
return 1;
|
|
83
|
+
}
|
|
84
|
+
const aHeader = a.header;
|
|
85
|
+
const bHeader = b.header;
|
|
86
|
+
// First, sort by type order
|
|
87
|
+
const aTypeOrder = TYPE_SORT_ORDER[aHeader.Type] ?? 999;
|
|
88
|
+
const bTypeOrder = TYPE_SORT_ORDER[bHeader.Type] ?? 999;
|
|
89
|
+
if (aTypeOrder !== bTypeOrder) {
|
|
90
|
+
return aTypeOrder - bTypeOrder;
|
|
91
|
+
}
|
|
92
|
+
// For the same type, apply specific sorting rules
|
|
93
|
+
// Sort by schema first (null schemas come first)
|
|
94
|
+
const aSchema = aHeader.Schema ?? '';
|
|
95
|
+
const bSchema = bHeader.Schema ?? '';
|
|
96
|
+
if (aSchema !== bSchema) {
|
|
97
|
+
if (aSchema === '') {
|
|
98
|
+
return -1;
|
|
99
|
+
}
|
|
100
|
+
if (bSchema === '') {
|
|
101
|
+
return 1;
|
|
102
|
+
}
|
|
103
|
+
return aSchema.localeCompare(bSchema);
|
|
104
|
+
}
|
|
105
|
+
// Special handling for constraints
|
|
106
|
+
if (aHeader.Type === 'CONSTRAINT' || aHeader.Type === 'FK CONSTRAINT') {
|
|
107
|
+
// Extract table name from constraint name (format: "table constraint_name")
|
|
108
|
+
const aTableName = aHeader.Name.split(' ')[0];
|
|
109
|
+
const bTableName = bHeader.Name.split(' ')[0];
|
|
110
|
+
if (aTableName !== bTableName) {
|
|
111
|
+
return aTableName.localeCompare(bTableName);
|
|
112
|
+
}
|
|
113
|
+
// Within the same table, sort by constraint type
|
|
114
|
+
const aConstraintKey = getConstraintSortKey(a.sql);
|
|
115
|
+
const bConstraintKey = getConstraintSortKey(b.sql);
|
|
116
|
+
if (aConstraintKey !== bConstraintKey) {
|
|
117
|
+
return aConstraintKey.localeCompare(bConstraintKey);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Special handling for indexes
|
|
121
|
+
if (aHeader.Type === 'INDEX') {
|
|
122
|
+
// Group indexes by their target table
|
|
123
|
+
const aScopeObject = (0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, a);
|
|
124
|
+
const bScopeObject = (0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, b);
|
|
125
|
+
if (aScopeObject && bScopeObject) {
|
|
126
|
+
const aTableName = aScopeObject.name;
|
|
127
|
+
const bTableName = bScopeObject.name;
|
|
128
|
+
if (aTableName !== bTableName) {
|
|
129
|
+
return aTableName.localeCompare(bTableName);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Special handling for comments - sort by what they comment on
|
|
134
|
+
if (aHeader.Type === 'COMMENT') {
|
|
135
|
+
const aTarget = aHeader.Name;
|
|
136
|
+
const bTarget = bHeader.Name;
|
|
137
|
+
// Extract the type of comment (TABLE, COLUMN, etc.)
|
|
138
|
+
const aCommentType = aTarget.split(' ')[0];
|
|
139
|
+
const bCommentType = bTarget.split(' ')[0];
|
|
140
|
+
if (aCommentType !== bCommentType) {
|
|
141
|
+
// Define order for comment types
|
|
142
|
+
const commentTypeOrder = {
|
|
143
|
+
AGGREGATE: 6,
|
|
144
|
+
COLUMN: 8,
|
|
145
|
+
EXTENSION: 1,
|
|
146
|
+
FUNCTION: 4,
|
|
147
|
+
INDEX: 10,
|
|
148
|
+
MATERIALIZED: 12,
|
|
149
|
+
PROCEDURE: 5,
|
|
150
|
+
SCHEMA: 2,
|
|
151
|
+
SEQUENCE: 9,
|
|
152
|
+
TABLE: 7,
|
|
153
|
+
TYPE: 3,
|
|
154
|
+
VIEW: 11,
|
|
155
|
+
};
|
|
156
|
+
const aOrder = commentTypeOrder[aCommentType] ?? 999;
|
|
157
|
+
const bOrder = commentTypeOrder[bCommentType] ?? 999;
|
|
158
|
+
if (aOrder !== bOrder) {
|
|
159
|
+
return aOrder - bOrder;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// For COLUMN comments, sort by table name then column position
|
|
163
|
+
if (aCommentType === 'COLUMN') {
|
|
164
|
+
const aMatch = aTarget.match(/COLUMN\s+(\S+\.\S+)\.(.+)/u);
|
|
165
|
+
const bMatch = bTarget.match(/COLUMN\s+(\S+\.\S+)\.(.+)/u);
|
|
166
|
+
if (aMatch && bMatch) {
|
|
167
|
+
const aTable = aMatch[1];
|
|
168
|
+
const bTable = bMatch[1];
|
|
169
|
+
if (aTable !== bTable) {
|
|
170
|
+
return aTable.localeCompare(bTable);
|
|
171
|
+
}
|
|
172
|
+
// Same table, sort by column name
|
|
173
|
+
const aColumn = aMatch[2];
|
|
174
|
+
const bColumn = bMatch[2];
|
|
175
|
+
return aColumn.localeCompare(bColumn);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Finally, sort by name
|
|
180
|
+
return aHeader.Name.localeCompare(bHeader.Name);
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Groups schema objects by their scope (table, view, etc.) and sorts them
|
|
184
|
+
*/
|
|
185
|
+
const groupAndSortSchemaObjects = (schemaObjects) => {
|
|
186
|
+
const grouped = new Map();
|
|
187
|
+
// First, group objects by their scope
|
|
188
|
+
for (const schemaObject of schemaObjects) {
|
|
189
|
+
const scope = (0, scopeSchemaObject_1.scopeSchemaObject)(schemaObjects, schemaObject);
|
|
190
|
+
let key;
|
|
191
|
+
if (scope) {
|
|
192
|
+
// Create a unique key for each scope
|
|
193
|
+
key = `${scope.type}:${scope.schema ?? 'null'}:${scope.name}`;
|
|
194
|
+
}
|
|
195
|
+
else if ('Type' in schemaObject.header) {
|
|
196
|
+
// For objects without a scope, group by type
|
|
197
|
+
const header = schemaObject.header;
|
|
198
|
+
key = `_UNSCOPED:${header.Type}:${header.Schema ?? 'null'}:${header.Name}`;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// Title headers
|
|
202
|
+
key = '_TITLE';
|
|
203
|
+
}
|
|
204
|
+
if (!grouped.has(key)) {
|
|
205
|
+
grouped.set(key, []);
|
|
206
|
+
}
|
|
207
|
+
const groupArray = grouped.get(key);
|
|
208
|
+
if (groupArray) {
|
|
209
|
+
groupArray.push(schemaObject);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Sort objects within each group
|
|
213
|
+
for (const objects of grouped.values()) {
|
|
214
|
+
objects.sort((a, b) => compareSchemaObjects(a, b, schemaObjects));
|
|
215
|
+
}
|
|
216
|
+
// Sort the groups themselves
|
|
217
|
+
const sortedGrouped = new Map(
|
|
218
|
+
// eslint-disable-next-line unicorn/no-array-sort
|
|
219
|
+
[...grouped.entries()].sort(([keyA], [keyB]) => {
|
|
220
|
+
// Title headers first
|
|
221
|
+
if (keyA === '_TITLE') {
|
|
222
|
+
return -1;
|
|
223
|
+
}
|
|
224
|
+
if (keyB === '_TITLE') {
|
|
225
|
+
return 1;
|
|
226
|
+
}
|
|
227
|
+
// Then unscoped objects
|
|
228
|
+
if (keyA.startsWith('_UNSCOPED:') && !keyB.startsWith('_UNSCOPED:')) {
|
|
229
|
+
return -1;
|
|
230
|
+
}
|
|
231
|
+
if (!keyA.startsWith('_UNSCOPED:') && keyB.startsWith('_UNSCOPED:')) {
|
|
232
|
+
return 1;
|
|
233
|
+
}
|
|
234
|
+
// Sort by type, schema, then name
|
|
235
|
+
return keyA.localeCompare(keyB);
|
|
236
|
+
}));
|
|
237
|
+
return sortedGrouped;
|
|
238
|
+
};
|
|
239
|
+
exports.groupAndSortSchemaObjects = groupAndSortSchemaObjects;
|
|
240
|
+
/**
|
|
241
|
+
* Sorts an array of schema objects
|
|
242
|
+
*/
|
|
243
|
+
const sortSchemaObjects = (schemaObjects) => {
|
|
244
|
+
const sorted = [...schemaObjects];
|
|
245
|
+
sorted.sort((a, b) => compareSchemaObjects(a, b, schemaObjects));
|
|
246
|
+
return sorted;
|
|
247
|
+
};
|
|
248
|
+
exports.sortSchemaObjects = sortSchemaObjects;
|
|
249
|
+
/**
|
|
250
|
+
* Sorts schema objects while preserving their grouping by scope
|
|
251
|
+
*/
|
|
252
|
+
const sortSchemaObjectsByScope = (schemaObjects) => {
|
|
253
|
+
const grouped = (0, exports.groupAndSortSchemaObjects)(schemaObjects);
|
|
254
|
+
const result = [];
|
|
255
|
+
for (const objects of grouped.values()) {
|
|
256
|
+
result.push(...objects);
|
|
257
|
+
}
|
|
258
|
+
return result;
|
|
259
|
+
};
|
|
260
|
+
exports.sortSchemaObjectsByScope = sortSchemaObjectsByScope;
|
|
261
|
+
//# sourceMappingURL=sortSchemaObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortSchemaObjects.js","sourceRoot":"","sources":["../src/sortSchemaObjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortSchemaObjects.test.d.ts","sourceRoot":"","sources":["../src/sortSchemaObjects.test.ts"],"names":[],"mappings":""}
|