|
1 | 1 | import * as ts from 'typescript';
|
2 | 2 |
|
3 |
| -export function typescriptTransformUnspec(program: ts.Program, options?): ts.TransformerFactory<ts.SourceFile> { |
| 3 | +export default function typescriptTransformUnspec(program: ts.Program): ts.TransformerFactory<ts.SourceFile> { // tslint:disable-line:no-default-export |
4 | 4 | return (context) => (file) => visitNodeAndChildren(file, program, context);
|
5 | 5 | }
|
6 | 6 |
|
7 | 7 | function visitNodeAndChildren(node: ts.Node, program: ts.Program, context: ts.TransformationContext): ts.SourceFile {
|
8 |
| - return ts.visitEachChild(visitor(node), (childNode) => visitNodeAndChildren(childNode, program, context), context) as ts.SourceFile; |
| 8 | + const visitor = (childNode) => visitNodeAndChildren(childNode, program, context); |
| 9 | + return ts.visitEachChild<ts.SourceFile>(<ts.SourceFile>filterNode(node), visitor, context); |
9 | 10 | }
|
10 | 11 |
|
11 |
| -function visitor(node: ts.Node): ts.Node | undefined { |
| 12 | +function filterNode<T extends ts.Node>(node: T): T | undefined { |
12 | 13 | if (isSpecExpressionStatement(node)) {
|
13 | 14 | return undefined;
|
14 | 15 | }
|
@@ -44,18 +45,16 @@ function isSpecExpressionStatement(node: ts.Node) {
|
44 | 45 | if (ts.isExpressionStatement(node) && ts.isCallExpression(node.expression)) {
|
45 | 46 | const callExpr = node.expression.expression;
|
46 | 47 | if (ts.isIdentifier(callExpr) && isTestExpressionText(callExpr.escapedText)) {
|
47 |
| - console.log("callExpr", callExpr.flags); |
48 | 48 | return true;
|
49 | 49 | }
|
50 | 50 | if (ts.isPropertyAccessExpression(callExpr)) {
|
51 | 51 | const propertyAccessExpr = callExpr.expression;
|
52 | 52 | if (ts.isIdentifier(propertyAccessExpr) && isTestExpressionText(propertyAccessExpr.escapedText)) {
|
53 |
| - console.log("propertyAccessExpr", propertyAccessExpr.flags); |
54 | 53 | return true;
|
55 | 54 | }
|
56 | 55 | }
|
57 |
| - return false; |
58 | 56 | }
|
| 57 | + return false; |
59 | 58 | }
|
60 | 59 |
|
61 | 60 | module.exports = typescriptTransformUnspec;
|
|
0 commit comments