Skip to content

Commit 67680dc

Browse files
committed
refactor: Fix handling of non-string-literal dependencies
1 parent 0a454ec commit 67680dc

File tree

4 files changed

+48
-2
lines changed

4 files changed

+48
-2
lines changed

src/autofix/solutions/amdImports.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export function addDependencies(
9898

9999
const dependencies = moduleDeclaration.dependencies?.elements;
100100
const {dependencyMap, mostUsedQuoteStyle} = createDependencyInfo(dependencies, resourcePath);
101+
let numberOfDependencies = dependencies?.length ?? 0;
101102

102103
const parameters = factory.parameters;
103104
const parameterSyntax = getParameterSyntax(factory);
@@ -138,6 +139,9 @@ export function addDependencies(
138139
});
139140
dependencyMap.delete(requestedModuleName);
140141

142+
// Update number of dependencies
143+
numberOfDependencies--;
144+
141145
// Ensure that the new dependency will be the same, e.g. in case it is a relative path
142146
dependencyModuleName = existingDependency.node.text;
143147
}
@@ -160,8 +164,8 @@ export function addDependencies(
160164

161165
const insertAfterDependencyElement = dependencies?.[insertAfterIndex];
162166
if (insertAfterDependencyElement || (dependencies && insertAfterIndex === -1)) {
163-
const existingDependenciesLeft = insertAfterIndex > -1 && dependencyMap.size > 0;
164-
const existingDependenciesRight = insertAfterIndex === -1 && dependencyMap.size > 0;
167+
const existingDependenciesLeft = insertAfterIndex > -1 && numberOfDependencies > 0;
168+
const existingDependenciesRight = insertAfterIndex === -1 && numberOfDependencies > 0;
165169
let value = existingDependenciesLeft ? (depsSeparator + newDependencyValue) : newDependencyValue;
166170
value += existingDependenciesRight ? ", " : "";
167171
const start = insertAfterDependencyElement?.getEnd() ?? dependencies.pos;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
sap.ui.define([
2+
someModuleName
3+
], function(someModule) {
4+
5+
new sap.m.Button();
6+
7+
sap.ui.require([someOtherModuleName], function(someOtherModule) {
8+
new sap.m.Input();
9+
});
10+
11+
});

test/lib/autofix/snapshots/autofix.fixtures.ts.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,37 @@ Generated by [AVA](https://avajs.dev).
128128
});␊
129129
`
130130

131+
## General: GlobalsExistingDefineNonStringLiteralDeps.js
132+
133+
> Snapshot 1
134+
135+
[
136+
{
137+
coverageInfo: [],
138+
errorCount: 0,
139+
fatalErrorCount: 0,
140+
filePath: 'GlobalsExistingDefineNonStringLiteralDeps.js',
141+
messages: [],
142+
warningCount: 0,
143+
},
144+
]
145+
146+
> AutofixResult: /GlobalsExistingDefineNonStringLiteralDeps.js
147+
148+
`sap.ui.define([␊
149+
someModuleName,␊
150+
"sap/m/Button"␊
151+
], function(someModule, Button) {␊
152+
153+
new Button();␊
154+
155+
sap.ui.require([someOtherModuleName, "sap/m/Input"], function(someOtherModule, Input) {␊
156+
new Input();␊
157+
});␊
158+
159+
});␊
160+
`
161+
131162
## General: GlobalsExistingDefineSpecialGlobalAccess.js
132163

133164
> Snapshot 1
119 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)