Skip to content

Commit

Permalink
fix: Add converter for parenthesized type nodes
Browse files Browse the repository at this point in the history
Closes #1346
  • Loading branch information
Gerrit0 committed Aug 28, 2020
1 parent 6e0661c commit b3c7731
Show file tree
Hide file tree
Showing 4 changed files with 153 additions and 49 deletions.
1 change: 1 addition & 0 deletions src/lib/converter/types/index.ts
Expand Up @@ -7,6 +7,7 @@ export { EnumConverter } from './enum';
export { InferredConverter } from './inferred';
export { IndexedAccessConverter } from './indexed-access';
export { IntrinsicConverter } from './intrinsic';
export { ParensConverter } from './parens';
export { PredicateConverter } from './predicate';
export { QueryConverter } from './query';
export { StringLiteralConverter } from './string-literal';
Expand Down
25 changes: 25 additions & 0 deletions src/lib/converter/types/parens.ts
@@ -0,0 +1,25 @@
import * as ts from "typescript";

import { Type } from "../../models/index";
import {
Component,
ConverterTypeComponent,
TypeNodeConverter,
} from "../components";
import { Context } from "../context";

@Component({ name: "type:parens" })
export class ParensConverter
extends ConverterTypeComponent
implements TypeNodeConverter<ts.Type, ts.ParenthesizedTypeNode> {
supportsNode(_context: Context, node: ts.TypeNode): boolean {
return ts.isParenthesizedTypeNode(node);
}

convertNode(
context: Context,
node: ts.ParenthesizedTypeNode
): Type | undefined {
return this.owner.convertType(context, node.type);
}
}
2 changes: 2 additions & 0 deletions src/test/converter/types/parens.ts
@@ -0,0 +1,2 @@
// Extraneous parenthesis are intentional to test the parens converter.
export type ZZ = (1) & ({ a: string })

0 comments on commit b3c7731

Please sign in to comment.