@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.
@@ -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 tree2 = await parse(finalSql);
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
- log.warn(`⚠️ SQL diff exists! Review the ${relative(packageDir, outPath)}/ folder.`);
89
- // Uncomment if needed:
90
- // writeFileSync(`${outPath}/orig.${sqlFileName}.tree.json`, tree1);
91
- // writeFileSync(`${outPath}/parsed.${sqlFileName}.tree.json`, tree2);
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.0",
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": "09721f934b339bd8c55d2e633abaded6d20b0f65"
67
+ "gitHead": "6883e3b93da28078483bc6aa25862613ef4405b2"
68
68
  }
@@ -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 {};
@@ -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 tree2 = await (0, pgsql_parser_1.parse)(finalSql);
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
- log.warn(`⚠️ SQL diff exists! Review the ${(0, path_1.relative)(packageDir, outPath)}/ folder.`);
94
- // Uncomment if needed:
95
- // writeFileSync(`${outPath}/orig.${sqlFileName}.tree.json`, tree1);
96
- // writeFileSync(`${outPath}/parsed.${sqlFileName}.tree.json`, tree2);
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);