@pgpmjs/core 4.5.0 → 4.5.1
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/esm/packaging/package.js +13 -7
- package/package.json +2 -2
- package/packaging/package.d.ts +3 -2
- package/packaging/package.js +13 -7
package/esm/packaging/package.js
CHANGED
|
@@ -24,7 +24,7 @@ const filterStatements = (stmts, extension) => {
|
|
|
24
24
|
!stmt.hasOwnProperty('CreateExtensionStmt');
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
|
-
export const packageModule = async (packageDir, { usePlan = true, extension = true, pretty = true, functionDelimiter = '$EOFCODE$' } = {}) => {
|
|
27
|
+
export const packageModule = async (packageDir, { usePlan = true, extension = true, pretty = true, functionDelimiter = '$EOFCODE$', outputDiff = false } = {}) => {
|
|
28
28
|
const resolveFn = usePlan ? resolveWithPlan : resolve;
|
|
29
29
|
const sql = resolveFn(packageDir);
|
|
30
30
|
if (!sql?.trim()) {
|
|
@@ -43,7 +43,8 @@ export const packageModule = async (packageDir, { usePlan = true, extension = tr
|
|
|
43
43
|
functionDelimiter
|
|
44
44
|
});
|
|
45
45
|
const tree1 = parsed.stmts;
|
|
46
|
-
const
|
|
46
|
+
const reparsed = await parse(finalSql);
|
|
47
|
+
const tree2 = filterStatements(reparsed.stmts, extension);
|
|
47
48
|
const results = {
|
|
48
49
|
sql: `${topLine}${finalSql}`,
|
|
49
50
|
};
|
|
@@ -61,7 +62,7 @@ export const packageModule = async (packageDir, { usePlan = true, extension = tr
|
|
|
61
62
|
throw e;
|
|
62
63
|
}
|
|
63
64
|
};
|
|
64
|
-
export const writePackage = async ({ version, extension = true, usePlan = true, packageDir, }) => {
|
|
65
|
+
export const writePackage = async ({ version, extension = true, usePlan = true, packageDir, outputDiff = false, }) => {
|
|
65
66
|
const pkgPath = `${packageDir}/package.json`;
|
|
66
67
|
const pkg = require(pkgPath);
|
|
67
68
|
const extname = await getExtensionName(packageDir);
|
|
@@ -73,6 +74,7 @@ export const writePackage = async ({ version, extension = true, usePlan = true,
|
|
|
73
74
|
const { sql, diff, tree1, tree2 } = await packageModule(packageDir, {
|
|
74
75
|
extension,
|
|
75
76
|
usePlan,
|
|
77
|
+
outputDiff,
|
|
76
78
|
});
|
|
77
79
|
const outPath = extension ? `${packageDir}/sql` : `${packageDir}/out`;
|
|
78
80
|
rmSync(outPath, { recursive: true, force: true });
|
|
@@ -85,10 +87,14 @@ export const writePackage = async ({ version, extension = true, usePlan = true,
|
|
|
85
87
|
writeFileSync(makePath, Makefile.replace(regex, sqlFileName));
|
|
86
88
|
}
|
|
87
89
|
if (diff) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
if (outputDiff) {
|
|
91
|
+
writeFileSync(`${outPath}/orig.${sqlFileName}.tree.json`, tree1);
|
|
92
|
+
writeFileSync(`${outPath}/parsed.${sqlFileName}.tree.json`, tree2);
|
|
93
|
+
log.warn(`⚠️ AST round-trip diff detected! Diff files written to ${relative(packageDir, outPath)}/`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
log.warn(`⚠️ AST round-trip diff detected! Run with --outputDiff to export the AST diff files.`);
|
|
97
|
+
}
|
|
92
98
|
}
|
|
93
99
|
const writePath = `${outPath}/${sqlFileName}`;
|
|
94
100
|
writeFileSync(writePath, sql);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pgpmjs/core",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.1",
|
|
4
4
|
"author": "Constructive <developers@constructive.io>",
|
|
5
5
|
"description": "PGPM Package and Migration Tools",
|
|
6
6
|
"main": "index.js",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"pgsql-parser": "^17.9.5",
|
|
65
65
|
"yanse": "^0.1.8"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "6883e3b93da28078483bc6aa25862613ef4405b2"
|
|
68
68
|
}
|
package/packaging/package.d.ts
CHANGED
|
@@ -4,16 +4,17 @@ interface PackageModuleOptions {
|
|
|
4
4
|
extension?: boolean;
|
|
5
5
|
pretty?: boolean;
|
|
6
6
|
functionDelimiter?: string;
|
|
7
|
+
outputDiff?: boolean;
|
|
7
8
|
}
|
|
8
9
|
interface WritePackageOptions extends PackageModuleOptions {
|
|
9
10
|
version: string;
|
|
10
11
|
packageDir: string;
|
|
11
12
|
}
|
|
12
|
-
export declare const packageModule: (packageDir: string, { usePlan, extension, pretty, functionDelimiter }?: PackageModuleOptions) => Promise<{
|
|
13
|
+
export declare const packageModule: (packageDir: string, { usePlan, extension, pretty, functionDelimiter, outputDiff }?: PackageModuleOptions) => Promise<{
|
|
13
14
|
sql: string;
|
|
14
15
|
diff?: boolean;
|
|
15
16
|
tree1?: string;
|
|
16
17
|
tree2?: string;
|
|
17
18
|
}>;
|
|
18
|
-
export declare const writePackage: ({ version, extension, usePlan, packageDir, }: WritePackageOptions) => Promise<void>;
|
|
19
|
+
export declare const writePackage: ({ version, extension, usePlan, packageDir, outputDiff, }: WritePackageOptions) => Promise<void>;
|
|
19
20
|
export {};
|
package/packaging/package.js
CHANGED
|
@@ -28,7 +28,7 @@ const filterStatements = (stmts, extension) => {
|
|
|
28
28
|
!stmt.hasOwnProperty('CreateExtensionStmt');
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
|
-
const packageModule = async (packageDir, { usePlan = true, extension = true, pretty = true, functionDelimiter = '$EOFCODE$' } = {}) => {
|
|
31
|
+
const packageModule = async (packageDir, { usePlan = true, extension = true, pretty = true, functionDelimiter = '$EOFCODE$', outputDiff = false } = {}) => {
|
|
32
32
|
const resolveFn = usePlan ? resolve_1.resolveWithPlan : resolve_1.resolve;
|
|
33
33
|
const sql = resolveFn(packageDir);
|
|
34
34
|
if (!sql?.trim()) {
|
|
@@ -47,7 +47,8 @@ const packageModule = async (packageDir, { usePlan = true, extension = true, pre
|
|
|
47
47
|
functionDelimiter
|
|
48
48
|
});
|
|
49
49
|
const tree1 = parsed.stmts;
|
|
50
|
-
const
|
|
50
|
+
const reparsed = await (0, pgsql_parser_1.parse)(finalSql);
|
|
51
|
+
const tree2 = filterStatements(reparsed.stmts, extension);
|
|
51
52
|
const results = {
|
|
52
53
|
sql: `${topLine}${finalSql}`,
|
|
53
54
|
};
|
|
@@ -66,7 +67,7 @@ const packageModule = async (packageDir, { usePlan = true, extension = true, pre
|
|
|
66
67
|
}
|
|
67
68
|
};
|
|
68
69
|
exports.packageModule = packageModule;
|
|
69
|
-
const writePackage = async ({ version, extension = true, usePlan = true, packageDir, }) => {
|
|
70
|
+
const writePackage = async ({ version, extension = true, usePlan = true, packageDir, outputDiff = false, }) => {
|
|
70
71
|
const pkgPath = `${packageDir}/package.json`;
|
|
71
72
|
const pkg = require(pkgPath);
|
|
72
73
|
const extname = await (0, files_1.getExtensionName)(packageDir);
|
|
@@ -78,6 +79,7 @@ const writePackage = async ({ version, extension = true, usePlan = true, package
|
|
|
78
79
|
const { sql, diff, tree1, tree2 } = await (0, exports.packageModule)(packageDir, {
|
|
79
80
|
extension,
|
|
80
81
|
usePlan,
|
|
82
|
+
outputDiff,
|
|
81
83
|
});
|
|
82
84
|
const outPath = extension ? `${packageDir}/sql` : `${packageDir}/out`;
|
|
83
85
|
(0, fs_1.rmSync)(outPath, { recursive: true, force: true });
|
|
@@ -90,10 +92,14 @@ const writePackage = async ({ version, extension = true, usePlan = true, package
|
|
|
90
92
|
(0, fs_1.writeFileSync)(makePath, Makefile.replace(regex, sqlFileName));
|
|
91
93
|
}
|
|
92
94
|
if (diff) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
if (outputDiff) {
|
|
96
|
+
(0, fs_1.writeFileSync)(`${outPath}/orig.${sqlFileName}.tree.json`, tree1);
|
|
97
|
+
(0, fs_1.writeFileSync)(`${outPath}/parsed.${sqlFileName}.tree.json`, tree2);
|
|
98
|
+
log.warn(`⚠️ AST round-trip diff detected! Diff files written to ${(0, path_1.relative)(packageDir, outPath)}/`);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
log.warn(`⚠️ AST round-trip diff detected! Run with --outputDiff to export the AST diff files.`);
|
|
102
|
+
}
|
|
97
103
|
}
|
|
98
104
|
const writePath = `${outPath}/${sqlFileName}`;
|
|
99
105
|
(0, fs_1.writeFileSync)(writePath, sql);
|