Skip to content
This repository was archived by the owner on Sep 21, 2019. It is now read-only.

Commit 9125af6

Browse files
author
Mohsen Azimi
committed
Remove createTypeDeclarationStatement hack
1 parent fee87ef commit 9125af6

File tree

3 files changed

+6
-20
lines changed

3 files changed

+6
-20
lines changed

src/helpers/index.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,6 @@ export function isReactComponent(classDeclaration: ts.ClassDeclaration, typeChec
4343
return true;
4444
}
4545

46-
/**
47-
* A temporary hack until ts allows creating type alias declaration nodes
48-
* Creates a TypeAliasDeclaration
49-
* @param name Name of type node
50-
* @param type Type node
51-
* @param sourceFile SourceFile for context
52-
*/
53-
export function createTypeDeclarationStatement(name: string, type: ts.TypeNode, sourceFile: ts.SourceFile) {
54-
const printer = ts.createPrinter()
55-
const typeString = printer.printNode(ts.EmitHint.Unspecified, type, sourceFile);
56-
const newSource = ts.createSourceFile('temp.ts', `type ${name} = ${typeString}`, sourceFile.languageVersion);
57-
58-
return newSource.statements[0];
59-
}
60-
61-
6246
/**
6347
* Determine if a ts.HeritageClause is React HeritageClause
6448
*

src/transforms/collapse-intersection-interfaces-transform.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ export function collapseIntersectionInterfacesTransformFactoryFactory(
3939
.map((type: ts.TypeLiteralNode) => type.members)
4040
.reduce((all, members) => ts.createNodeArray(all.concat(members)), ts.createNodeArray([]));
4141

42-
return helpers.createTypeDeclarationStatement(
42+
return ts.createTypeAliasDeclaration(
43+
[],
44+
[],
4345
node.name.text,
46+
[],
4447
ts.createTypeLiteralNode(allMembers),
45-
sourceFile,
4648
);
4749
}
4850

src/transforms/react-hoist-generics-transform.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ function hoist(reactClass: ts.ClassDeclaration, sourceFile: ts.SourceFile) {
5656
const [propType, stateType] = reactType.typeArguments;
5757
const propTypeName = `I${className}Props`;
5858
const stateTypeName = `I${className}State`;
59-
const propTypeDeclaration = helpers.createTypeDeclarationStatement(propTypeName, propType, sourceFile);
60-
const stateTypeDeclaration = helpers.createTypeDeclarationStatement(stateTypeName, stateType, sourceFile);
59+
const propTypeDeclaration = ts.createTypeAliasDeclaration([], [], propTypeName, [], propType);
60+
const stateTypeDeclaration = ts.createTypeAliasDeclaration([], [], stateTypeName, [], stateType);
6161
const propTypeRef = ts.createTypeReferenceNode(propTypeName, []);
6262
const stateTypeRef = ts.createTypeReferenceNode(stateTypeName, []);
6363
const newClassStatement = insertTypeRefs(reactClass, propTypeRef, stateTypeRef);

0 commit comments

Comments
 (0)