Skip to content

Commit 2b08bd3

Browse files
committed
change from tuple to object literal
1 parent 9b9aa35 commit 2b08bd3

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

src/services/refactors/convertStringOrTemplateLiteral.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral {
9696
return expr;
9797
}
9898

99-
function arrayToTree(nodes: Expression[], accumulator?: BinaryExpression): BinaryExpression {
99+
function arrayToTree(nodes: ReadonlyArray<Expression>, accumulator?: BinaryExpression): BinaryExpression {
100100
if (nodes.length === 0) return accumulator!;
101101

102102
if (!accumulator) {
@@ -113,31 +113,33 @@ namespace ts.refactor.convertStringOrTemplateLiteral {
113113
}
114114

115115
function isStringConcatenationValid(node: Node): boolean {
116-
const [, containsString, areOperatorsValid] = treeToArray(node);
116+
const { containsString, areOperatorsValid } = treeToArray(node);
117117
return containsString && areOperatorsValid;
118118
}
119119

120-
function transformTreeToArray(node: Node): Expression[] {
121-
return treeToArray(node)[0];
120+
function transformTreeToArray(node: Node): ReadonlyArray<Expression> {
121+
return treeToArray(node).nodes;
122122
}
123123

124-
function treeToArray(node: Node): [Expression[], /* containsString */ boolean, /* areOperatorsValid */ boolean] {
124+
function treeToArray(node: Node): { nodes: ReadonlyArray<Expression>, containsString: boolean, areOperatorsValid: boolean} {
125125
if (isBinaryExpression(node)) {
126-
const [leftNodes, leftHasString, leftOperatorValid] = treeToArray(node.left);
127-
const [rightNodes, rightHasString, rightOperatorValid] = treeToArray(node.right);
126+
const { nodes: leftNodes, containsString: leftHasString, areOperatorsValid: leftOperatorValid } = treeToArray(node.left);
127+
const { nodes: rightNodes, containsString: rightHasString, areOperatorsValid: rightOperatorValid } = treeToArray(node.right);
128128

129-
if (!leftHasString && !rightHasString) return [[node], false, true];
129+
if (!leftHasString && !rightHasString) {
130+
return { nodes: [node], containsString: false, areOperatorsValid: true };
131+
}
130132

131133
const nodeOperatorValid = node.operatorToken.kind === SyntaxKind.PlusToken;
132134
const isPlus = leftOperatorValid && nodeOperatorValid && rightOperatorValid;
133135

134-
return [leftNodes.concat(rightNodes), true, isPlus];
136+
return { nodes: leftNodes.concat(rightNodes), containsString: true, areOperatorsValid: isPlus };
135137
}
136138

137-
return [[node as Expression], isStringLiteral(node), true];
139+
return { nodes: [node as Expression], containsString: isStringLiteral(node), areOperatorsValid: true };
138140
}
139141

140-
function createHead(nodes: Node[]): [number, TemplateHead] {
142+
function createHead(nodes: ReadonlyArray<Expression>): [number, TemplateHead] {
141143
let begin = 0;
142144
const head = createTemplateHead("");
143145

@@ -151,7 +153,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral {
151153
return [begin, head];
152154
}
153155

154-
function nodesToTemplate(nodes: Expression[]) {
156+
function nodesToTemplate(nodes: ReadonlyArray<Expression>) {
155157
const templateSpans: TemplateSpan[] = [];
156158
const [begin, head] = createHead(nodes);
157159

0 commit comments

Comments
 (0)