example - App - show swap expression transform by default

This commit is contained in:
2020-01-27 18:26:47 +05:30
parent 15a7f3e7cb
commit 55aec4805c
+8 -6
View File
@@ -7,7 +7,7 @@ import {
} from "ts-transformer-visualizer"; } from "ts-transformer-visualizer";
import * as ts from "typescript"; import * as ts from "typescript";
const source = "x = 1;"; const source = "x = y;\nx=1;\nx=y=z;";
const mainFile = ts.createSourceFile("/test", source, ts.ScriptTarget.ES2015); const mainFile = ts.createSourceFile("/test", source, ts.ScriptTarget.ES2015);
@@ -19,11 +19,13 @@ const transformer = context => {
* @returns {ts.VisitResult<ts.Node>} * @returns {ts.VisitResult<ts.Node>}
*/ */
const visitor = node => { const visitor = node => {
// If it is a expression statement, if (
if (ts.isExpressionStatement(node)) { ts.isBinaryExpression(node) &&
// Return it twice. node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
// Effectively duplicating the statement ts.isIdentifier(node.left) &&
return [node, ts.getMutableClone(node)]; ts.isIdentifier(node.right)
) {
return ts.updateBinary(node, node.right, node.left);
} }
return ts.visitEachChild(node, visitor, context); return ts.visitEachChild(node, visitor, context);