Skip to content

Commit 0e919b2

Browse files
refactor: simplify TypeName and TypeCast methods to match v13-to-v14 pattern
Co-Authored-By: Dan Lynch <[email protected]>
1 parent 38fe0fe commit 0e919b2

File tree

1 file changed

+2
-73
lines changed

1 file changed

+2
-73
lines changed

packages/transform/src/transformers/v16-to-v17.ts

Lines changed: 2 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -444,24 +444,9 @@ export class V16ToV17Transformer {
444444
const result: any = {};
445445

446446
if (node.names !== undefined) {
447-
let names = Array.isArray(node.names)
447+
result.names = Array.isArray(node.names)
448448
? node.names.map(item => this.transform(item as any, context))
449449
: this.transform(node.names as any, context);
450-
451-
if (Array.isArray(names) && names.length === 2) {
452-
const firstElement = names[0];
453-
const secondElement = names[1];
454-
if (firstElement && typeof firstElement === 'object' && 'String' in firstElement &&
455-
secondElement && typeof secondElement === 'object' && 'String' in secondElement) {
456-
const firstTypeName = firstElement.String.str || firstElement.String.sval;
457-
const secondTypeName = secondElement.String.str || secondElement.String.sval;
458-
if (firstTypeName === 'pg_catalog' && secondTypeName === 'json') {
459-
names = [secondElement];
460-
}
461-
}
462-
}
463-
464-
result.names = names;
465450
}
466451

467452
if (node.typeOid !== undefined) {
@@ -562,63 +547,7 @@ export class V16ToV17Transformer {
562547
result.arg = this.transform(node.arg as any, context);
563548
}
564549
if (node.typeName !== undefined) {
565-
// Handle unwrapped TypeName data directly since PG16 provides it unwrapped
566-
const typeName = node.typeName as any;
567-
568-
if (typeName && typeof typeName === 'object' && 'names' in typeName) {
569-
const transformedTypeName: any = {};
570-
571-
if (typeName.names !== undefined) {
572-
let names = Array.isArray(typeName.names)
573-
? typeName.names.map((item: any) => this.transform(item as any, context))
574-
: this.transform(typeName.names as any, context);
575-
576-
if (Array.isArray(names) && names.length === 2) {
577-
const firstElement = names[0];
578-
const secondElement = names[1];
579-
if (firstElement && typeof firstElement === 'object' && 'String' in firstElement &&
580-
secondElement && typeof secondElement === 'object' && 'String' in secondElement) {
581-
const firstTypeName = firstElement.String.str || firstElement.String.sval;
582-
const secondTypeName = secondElement.String.str || secondElement.String.sval;
583-
if (firstTypeName === 'pg_catalog' && secondTypeName === 'json') {
584-
names = [secondElement];
585-
}
586-
}
587-
}
588-
589-
transformedTypeName.names = names;
590-
}
591-
592-
if (typeName.typeOid !== undefined) {
593-
transformedTypeName.typeOid = typeName.typeOid;
594-
}
595-
if (typeName.setof !== undefined) {
596-
transformedTypeName.setof = typeName.setof;
597-
}
598-
if (typeName.pct_type !== undefined) {
599-
transformedTypeName.pct_type = typeName.pct_type;
600-
}
601-
if (typeName.typmods !== undefined) {
602-
transformedTypeName.typmods = Array.isArray(typeName.typmods)
603-
? typeName.typmods.map((item: any) => this.transform(item as any, context))
604-
: this.transform(typeName.typmods as any, context);
605-
}
606-
if (typeName.typemod !== undefined) {
607-
transformedTypeName.typemod = typeName.typemod;
608-
}
609-
if (typeName.arrayBounds !== undefined) {
610-
transformedTypeName.arrayBounds = Array.isArray(typeName.arrayBounds)
611-
? typeName.arrayBounds.map((item: any) => this.transform(item as any, context))
612-
: this.transform(typeName.arrayBounds as any, context);
613-
}
614-
if (typeName.location !== undefined) {
615-
transformedTypeName.location = typeName.location;
616-
}
617-
618-
result.typeName = transformedTypeName;
619-
} else {
620-
result.typeName = this.transform(typeName, context);
621-
}
550+
result.typeName = this.transform(node.typeName as any, context);
622551
}
623552
if (node.location !== undefined) {
624553
result.location = node.location;

0 commit comments

Comments
 (0)