mirror of
https://github.com/bendtherules/ts-transformer-visualizer.git
synced 2026-08-18 22:01:45 +00:00
example - App - show swap expression transform by default
This commit is contained in:
+8
-6
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user