pgsql-deparser 16.2.0 → 16.2.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/index.js CHANGED
@@ -5,6 +5,24 @@
5
5
  import { Deparser as Deparser18 } from './deparser';
6
6
  import { PG16ToPG18Transformer } from './v16-to-v18-direct';
7
7
  const tx = new PG16ToPG18Transformer();
8
+ const bare = (names, name) => Array.isArray(names) && names.length === 1 && (names[0]?.String?.sval ?? names[0]?.String?.str) === name;
9
+ const v16to17 = tx.v16to17;
10
+ const upgradeTypeName = v16to17.TypeName.bind(v16to17);
11
+ v16to17.TypeName = (node, context) => {
12
+ const out = upgradeTypeName(node, context);
13
+ if (bare(node.names, 'json'))
14
+ out.TypeName.names = [{ String: { sval: 'json' } }];
15
+ return out;
16
+ };
17
+ const upgradeTypeCast = v16to17.TypeCast.bind(v16to17);
18
+ v16to17.TypeCast = (node, context) => {
19
+ const out = upgradeTypeCast(node, context);
20
+ const typeName = out.TypeCast.typeName?.TypeName ?? out.TypeCast.typeName;
21
+ if (typeName && bare((node.typeName?.TypeName ?? node.typeName)?.names, 'json')) {
22
+ typeName.names = [{ String: { sval: 'json' } }];
23
+ }
24
+ return out;
25
+ };
8
26
  const toAst18 = (query) => Array.isArray(query) ? query.map(node => tx.transform(node)) : tx.transform(query);
9
27
  export class Deparser extends Deparser18 {
10
28
  constructor(tree, opts = {}) {
@@ -13,6 +31,12 @@ export class Deparser extends Deparser18 {
13
31
  static deparse(query, opts = {}) {
14
32
  return new Deparser(query, opts).deparseQuery();
15
33
  }
34
+ DefElem(node, context) {
35
+ if (!node.arg && node.defaction !== 'DEFELEM_DROP' && context.parentNodeTypes.includes('AlterOperatorStmt')) {
36
+ return `${node.defname} = NONE`;
37
+ }
38
+ return super.DefElem(node, context);
39
+ }
16
40
  }
17
41
  export async function deparse(query, opts) {
18
42
  return Deparser.deparse(query, opts);
package/esm/v16-to-v17.js CHANGED
@@ -652,6 +652,12 @@ export class V16ToV17Transformer {
652
652
  if (node.storage !== undefined) {
653
653
  result.storage = node.storage;
654
654
  }
655
+ if (node.storage_name !== undefined) {
656
+ result.storage_name = node.storage_name;
657
+ }
658
+ if (node.compression !== undefined) {
659
+ result.compression = node.compression;
660
+ }
655
661
  if (node.raw_default !== undefined) {
656
662
  result.raw_default = this.transform(node.raw_default, context);
657
663
  }
package/index.d.ts CHANGED
@@ -8,6 +8,7 @@ type Query = Node | Node[] | ParseResult;
8
8
  export declare class Deparser extends Deparser18 {
9
9
  constructor(tree: Query, opts?: DeparserOptions);
10
10
  static deparse(query: Query, opts?: DeparserOptions): string;
11
+ DefElem(node: any, context: any): string;
11
12
  }
12
13
  export declare function deparse(query: Query, opts?: DeparserOptions): Promise<string>;
13
14
  export declare function deparseSync(query: Query, opts?: DeparserOptions): string;
package/index.js CHANGED
@@ -10,6 +10,24 @@ exports.deparseSync = deparseSync;
10
10
  const deparser_1 = require("./deparser");
11
11
  const v16_to_v18_direct_1 = require("./v16-to-v18-direct");
12
12
  const tx = new v16_to_v18_direct_1.PG16ToPG18Transformer();
13
+ const bare = (names, name) => Array.isArray(names) && names.length === 1 && (names[0]?.String?.sval ?? names[0]?.String?.str) === name;
14
+ const v16to17 = tx.v16to17;
15
+ const upgradeTypeName = v16to17.TypeName.bind(v16to17);
16
+ v16to17.TypeName = (node, context) => {
17
+ const out = upgradeTypeName(node, context);
18
+ if (bare(node.names, 'json'))
19
+ out.TypeName.names = [{ String: { sval: 'json' } }];
20
+ return out;
21
+ };
22
+ const upgradeTypeCast = v16to17.TypeCast.bind(v16to17);
23
+ v16to17.TypeCast = (node, context) => {
24
+ const out = upgradeTypeCast(node, context);
25
+ const typeName = out.TypeCast.typeName?.TypeName ?? out.TypeCast.typeName;
26
+ if (typeName && bare((node.typeName?.TypeName ?? node.typeName)?.names, 'json')) {
27
+ typeName.names = [{ String: { sval: 'json' } }];
28
+ }
29
+ return out;
30
+ };
13
31
  const toAst18 = (query) => Array.isArray(query) ? query.map(node => tx.transform(node)) : tx.transform(query);
14
32
  class Deparser extends deparser_1.Deparser {
15
33
  constructor(tree, opts = {}) {
@@ -18,6 +36,12 @@ class Deparser extends deparser_1.Deparser {
18
36
  static deparse(query, opts = {}) {
19
37
  return new Deparser(query, opts).deparseQuery();
20
38
  }
39
+ DefElem(node, context) {
40
+ if (!node.arg && node.defaction !== 'DEFELEM_DROP' && context.parentNodeTypes.includes('AlterOperatorStmt')) {
41
+ return `${node.defname} = NONE`;
42
+ }
43
+ return super.DefElem(node, context);
44
+ }
21
45
  }
22
46
  exports.Deparser = Deparser;
23
47
  async function deparse(query, opts) {
package/package.json CHANGED
@@ -34,7 +34,7 @@
34
34
  "database"
35
35
  ],
36
36
  "name": "pgsql-deparser",
37
- "version": "16.2.0",
37
+ "version": "16.2.1",
38
38
  "dependencies": {
39
39
  "@pgsql/quotes": "18.2.4",
40
40
  "@pgsql/types": "^16.1.2"
package/v16-to-v17.js CHANGED
@@ -655,6 +655,12 @@ class V16ToV17Transformer {
655
655
  if (node.storage !== undefined) {
656
656
  result.storage = node.storage;
657
657
  }
658
+ if (node.storage_name !== undefined) {
659
+ result.storage_name = node.storage_name;
660
+ }
661
+ if (node.compression !== undefined) {
662
+ result.compression = node.compression;
663
+ }
658
664
  if (node.raw_default !== undefined) {
659
665
  result.raw_default = this.transform(node.raw_default, context);
660
666
  }