Skip to content

Commit 5306f06

Browse files
committed
refactor(complex-types): reduce unneccesary code
1 parent b0cea0a commit 5306f06

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

packages/complex-types/src/core/printer.ts

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ export class Printer {
2525
].join(separator);
2626
}
2727

28-
private isUnionUndefined(union: ts.UnionType) {
29-
return union.types.some((t) => t.flags & ts.TypeFlags.Undefined);
28+
private containsUndefined(type: ts.Type): boolean {
29+
return type.isUnion()
30+
? type.types.some((t) => t.flags & ts.TypeFlags.Undefined)
31+
: !!(type.flags & ts.TypeFlags.Undefined);
3032
}
3133

3234
private printPrimitiveType(type: ts.Type): string {
@@ -80,30 +82,26 @@ export class Printer {
8082
const propType = this.checker.getTypeOfSymbol(prop);
8183
props[prop.getName()] = {
8284
value: this.printType(this.checker.getTypeOfSymbol(prop), true),
83-
isOptional: propType.isUnion()
84-
? this.isUnionUndefined(propType)
85-
: !!(propType.flags & ts.TypeFlags.Undefined),
85+
isOptional: this.containsUndefined(propType),
8686
};
8787
}
8888

8989
const parts: string[] = [];
90-
for (const [propName, propData] of Object.entries(props)) {
91-
const questionMark = propData.isOptional ? "?" : "";
92-
parts.push(
93-
`"${escapeQuotes(propName)}"${questionMark}: ${propData.value},`,
94-
);
90+
for (const [propName, { isOptional, value }] of Object.entries(props)) {
91+
const questionMark = isOptional ? "?" : "";
92+
parts.push(`"${escapeQuotes(propName)}"${questionMark}: ${value},`);
9593
}
9694

9795
return Object.keys(props).length > 0 ? `{\n${parts.join("\n")}\n}` : "";
9896
} else if (
99-
type.isLiteral() ||
100-
type.flags & ts.TypeFlags.BooleanLiteral ||
101-
type.flags & ts.TypeFlags.String ||
102-
type.flags & ts.TypeFlags.Number ||
103-
type.flags & ts.TypeFlags.BigInt ||
104-
type.flags & ts.TypeFlags.Any ||
105-
type.flags & ts.TypeFlags.Unknown ||
106-
type.flags & ts.TypeFlags.Null
97+
type.isLiteral()
98+
|| type.flags & ts.TypeFlags.BooleanLiteral
99+
|| type.flags & ts.TypeFlags.String
100+
|| type.flags & ts.TypeFlags.Number
101+
|| type.flags & ts.TypeFlags.BigInt
102+
|| type.flags & ts.TypeFlags.Any
103+
|| type.flags & ts.TypeFlags.Unknown
104+
|| type.flags & ts.TypeFlags.Null
107105
) {
108106
return this.printPrimitiveType(type);
109107
} else if (type.flags & ts.TypeFlags.Undefined) {

0 commit comments

Comments
 (0)