Skip to content

Commit e36458a

Browse files
chore(deps-dev): Bump eslint-plugin-sonarjs from 1.0.4 to 2.0.2 (#282)
Bumps [eslint-plugin-sonarjs](https://github.com/SonarSource/SonarJS) from 1.0.4 to 2.0.2. - [Release notes](https://github.com/SonarSource/SonarJS/releases) - [Commits](https://github.com/SonarSource/SonarJS/commits) --- updated-dependencies: - dependency-name: eslint-plugin-sonarjs dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Denis Golovin <[email protected]>
1 parent 477303d commit e36458a

11 files changed

+4076
-1781
lines changed

.eslintrc.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@
108108
"header/header": [2, "block", [{ "pattern": "SPDX-License-Identifier: Apache-2\\.0" }]],
109109
"simple-import-sort/imports": "error",
110110
"simple-import-sort/exports": "error",
111-
"unicorn/prefer-node-protocol": "error"
111+
"unicorn/prefer-node-protocol": "error",
112+
// redundant with @typescript-eslint/no-unused-vars
113+
"sonarjs/no-ignored-exceptions": "off",
114+
"sonarjs/todo-tag": "off",
115+
// redundant with @typescript-eslint/no-misused-promises
116+
"sonarjs/no-misused-promises" : "off"
112117
}
113118
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
"eslint-plugin-no-null": "^1.0.2",
7878
"eslint-plugin-redundant-undefined": "^1.0.0",
7979
"eslint-plugin-simple-import-sort": "^12.1.1",
80-
"eslint-plugin-sonarjs": "^1.0.4",
80+
"eslint-plugin-sonarjs": "^2.0.2",
8181
"eslint-plugin-unicorn": "^55.0.0",
8282
"mkdirp": "^3.0.1",
8383
"prettier": "^3.3.3",

pnpm-lock.yaml

+4,029-1,744
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/authentication-service.spec.ts

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*
1616
* SPDX-License-Identifier: Apache-2.0
1717
***********************************************************************/
18+
/* eslint-disable sonarjs/no-nested-functions */
1819

1920
import type { ExtensionContext } from '@podman-desktop/api';
2021
import { authentication } from '@podman-desktop/api';

src/authentication-service.ts

+14-13
Original file line numberDiff line numberDiff line change
@@ -265,20 +265,18 @@ export class RedHatAuthenticationService {
265265
removed = this._tokens.map(convertToSession);
266266
this.clearSessions().catch(console.error);
267267
}
268-
} else {
269-
if (this._tokens.length) {
270-
// Log out all, remove all local data
271-
removed = this._tokens.map(convertToSession);
272-
Logger.info('No stored keychain data, clearing local data');
268+
} else if (this._tokens.length) {
269+
// Log out all, remove all local data
270+
removed = this._tokens.map(convertToSession);
271+
Logger.info('No stored keychain data, clearing local data');
273272

274-
this._tokens = [];
273+
this._tokens = [];
275274

276-
this._refreshTimeouts.forEach(timeout => {
277-
clearTimeout(timeout);
278-
});
275+
this._refreshTimeouts.forEach(timeout => {
276+
clearTimeout(timeout);
277+
});
279278

280-
this._refreshTimeouts.clear();
281-
}
279+
this._refreshTimeouts.clear();
282280
}
283281

284282
if (added.length || removed.length) {
@@ -331,6 +329,7 @@ export class RedHatAuthenticationService {
331329
return Promise.all(this._tokens.map(token => this.convertToSession(token)));
332330
}
333331

332+
// eslint-disable-next-line sonarjs/no-alphabetical-sort
334333
const orderedScopes = [...scopes].sort().join(' ');
335334
const matchingTokens = this._tokens.filter(token => token.scope === orderedScopes);
336335
return Promise.all(matchingTokens.map(token => this.convertToSession(token)));
@@ -356,7 +355,7 @@ export class RedHatAuthenticationService {
356355
throw err;
357356
}
358357

359-
const host = redirectReq.req.headers.host || '';
358+
const host = redirectReq.req.headers.host ?? '';
360359
const updatedPortStr = (/^[^:]+:(\d+)$/.exec(Array.isArray(host) ? host[0] : host) || [])[1];
361360
const updatedPort = updatedPortStr ? parseInt(updatedPortStr, 10) : port;
362361

@@ -487,10 +486,12 @@ export class RedHatAuthenticationService {
487486
idToken: tokenSet.id_token,
488487
accessToken: tokenSet.access_token,
489488
refreshToken: tokenSet.refresh_token!,
490-
sessionId: existingId || tokenSet.session_state!,
489+
sessionId: existingId ?? tokenSet.session_state!,
491490
scope: scope,
492491
account: {
493492
id: claims.sub,
493+
// not sure if claim can't be an empty string in some specific use cases
494+
// eslint-disable-next-line sonarjs/prefer-nullish-coalescing
494495
label: claims.preferred_username || claims.email || 'email not found',
495496
},
496497
};

src/extension.ts

+1
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ export async function activate(context: extensionApi.ExtensionContext): Promise<
332332
onDidChangeSessions: onDidChangeSessions.event,
333333
createSession: async function (scopes: string[]): Promise<extensionApi.AuthenticationSession> {
334334
const service = await getAuthenticationService();
335+
// eslint-disable-next-line sonarjs/no-alphabetical-sort
335336
const session = await service.createSession([...scopes].sort().join(' '));
336337
onDidChangeSessions.fire({ added: [session] });
337338
return session;

src/logger.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type LogLevel = 'Trace' | 'Info' | 'Error';
2727
class Log {
2828
private data2String(data: any): string {
2929
if (data instanceof Error) {
30-
return data.stack || data.message;
30+
return data.stack ?? data.message;
3131
}
3232
if (data.success === false && data.message) {
3333
return data.message;

src/podman-cli.spec.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ test('runRpmInstallSubscription manager returns 0 when successful', async () =>
6969
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
7070
const result = await runRpmInstallSubscriptionManager('machine1');
7171
expect(result).toBe(runResult);
72-
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.RPM_INSTALL_SM('machine1'));
72+
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.rpmInstallSm('machine1'));
7373
});
7474

7575
test('runRpmInstallSubscription manager returns none 0 error code when failed and send telemetry', async () => {
@@ -115,7 +115,7 @@ test('runSubscriptionManagerRegister returns 0 when successful', async () => {
115115
expect(result).toBe(runResult);
116116
expect(podmanProcess.exec).toBeCalledWith(
117117
getPodmanCli(),
118-
PODMAN_COMMANDS.SM_ACTIVATE_SUBS('machine1', 'activation-key-name', 'orgId'),
118+
PODMAN_COMMANDS.smActivateSubs('machine1', 'activation-key-name', 'orgId'),
119119
);
120120
});
121121

@@ -145,7 +145,7 @@ test('runCreateFactsFile returns 0 when successful', async () => {
145145
expect(result).toBe(runResult);
146146
expect(podmanProcess.exec).toBeCalledWith(
147147
getPodmanCli(),
148-
PODMAN_COMMANDS.CREATE_FACTS_FILE('machine1', '{"field":"value"}'),
148+
PODMAN_COMMANDS.createFactFile('machine1', '{"field":"value"}'),
149149
);
150150
});
151151

@@ -173,7 +173,7 @@ test('runStopPodmanMachine returns 0 when successful', async () => {
173173
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
174174
const result = await runStopPodmanMachine('machine1');
175175
expect(result).toBe(runResult);
176-
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.MACHINE_STOP('machine1'));
176+
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.machineStop('machine1'));
177177
});
178178

179179
test('runStopPodmanMachine manager returns none 0 error code when failed and send telemetry', async () => {
@@ -200,7 +200,7 @@ test('runStartPodmanMachine returns 0 when successful', async () => {
200200
vi.mocked(podmanProcess.exec).mockResolvedValue(runResult);
201201
const result = await runStartPodmanMachine('machine1');
202202
expect(result).toBe(runResult);
203-
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.MACHINE_START('machine1'));
203+
expect(podmanProcess.exec).toBeCalledWith(getPodmanCli(), PODMAN_COMMANDS.machineStart('machine1'));
204204
});
205205

206206
test('runStartPodmanMachine manager returns none 0 error code when failed and send telemetry', async () => {

src/podman-cli.ts

+16-16
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@ import { isMac, isWindows } from './util';
2424
const macosExtraPath = '/usr/local/bin:/opt/homebrew/bin:/opt/local/bin:/opt/podman/bin';
2525

2626
export const PODMAN_COMMANDS = {
27-
SM_VERSION: (machineName: string): string[] => `machine ssh ${machineName} sudo subscription-manager`.split(' '),
28-
RPM_INSTALL_SM: (machineName: string): string[] =>
27+
smVersion: (machineName: string): string[] => `machine ssh ${machineName} sudo subscription-manager`.split(' '),
28+
rpmInstallSm: (machineName: string): string[] =>
2929
`machine ssh ${machineName} sudo rpm-ostree install -y subscription-manager`.split(' '),
30-
SM_ACTIVATION_STATUS: (machineName: string): string[] =>
30+
smActgivationStatus: (machineName: string): string[] =>
3131
`machine ssh ${machineName} sudo subscription-manager status`.split(' '),
32-
SM_ACTIVATE_SUBS: (machineName: string, activationKeyName: string, orgId: string): string[] =>
32+
smActivateSubs: (machineName: string, activationKeyName: string, orgId: string): string[] =>
3333
`machine ssh ${machineName} sudo subscription-manager register --force --activationkey ${activationKeyName} --org ${orgId}`.split(
3434
' ',
3535
),
36-
SM_DEACTIVATE_SUBS: (machineName: string): string[] =>
36+
smDeactivateSubs: (machineName: string): string[] =>
3737
`machine ssh ${machineName} sudo subscription-manager unregister`.split(' '),
38-
MACHINE_STOP: (machineName: string): string[] => `machine stop ${machineName}`.split(' '),
39-
MACHINE_START: (machineName: string): string[] => `machine start ${machineName}`.split(' '),
40-
CREATE_FACTS_FILE: (machineName: string, oneLineJson: string): string[] => [
38+
machineStop: (machineName: string): string[] => `machine stop ${machineName}`.split(' '),
39+
machineStart: (machineName: string): string[] => `machine start ${machineName}`.split(' '),
40+
createFactFile: (machineName: string, oneLineJson: string): string[] => [
4141
'machine',
4242
'ssh',
4343
machineName,
@@ -123,22 +123,22 @@ function errTelemetryHandler(commandName: string, telemetryEventName: string, er
123123
}
124124

125125
export async function runSubscriptionManager(machineName: string): Promise<number> {
126-
return runCommand('Subscription manager execution', PODMAN_COMMANDS.SM_VERSION(machineName), errToExitCodeHandler);
126+
return runCommand('Subscription manager execution', PODMAN_COMMANDS.smVersion(machineName), errToExitCodeHandler);
127127
}
128128

129129
export async function runRpmInstallSubscriptionManager(machineName: string): Promise<RunResult> {
130130
return runCommandAndSendTelemetry(
131131
'Subscription manager installation',
132132
'subscriptionManagerInstallationError',
133-
PODMAN_COMMANDS.RPM_INSTALL_SM(machineName),
133+
PODMAN_COMMANDS.rpmInstallSm(machineName),
134134
errTelemetryHandler,
135135
);
136136
}
137137

138138
export async function runSubscriptionManagerActivationStatus(machineName: string): Promise<number> {
139139
return runCommand(
140140
'Subscription manager subscription activation check',
141-
PODMAN_COMMANDS.SM_ACTIVATION_STATUS(machineName),
141+
PODMAN_COMMANDS.smActgivationStatus(machineName),
142142
errToExitCodeHandler,
143143
);
144144
}
@@ -151,7 +151,7 @@ export async function runSubscriptionManagerRegister(
151151
return runCommandAndSendTelemetry(
152152
'Subscription manager registration',
153153
'subscriptionManagerRegisterError',
154-
PODMAN_COMMANDS.SM_ACTIVATE_SUBS(machineName, activationKeyName, orgId),
154+
PODMAN_COMMANDS.smActivateSubs(machineName, activationKeyName, orgId),
155155
errTelemetryHandler,
156156
);
157157
}
@@ -160,7 +160,7 @@ export async function runSubscriptionManagerUnregister(machineName: string): Pro
160160
return runCommandAndSendTelemetry(
161161
'Subscription manager unregister',
162162
'subscriptionManagerUnregisterError',
163-
PODMAN_COMMANDS.SM_DEACTIVATE_SUBS(machineName),
163+
PODMAN_COMMANDS.smDeactivateSubs(machineName),
164164
errTelemetryHandler,
165165
);
166166
}
@@ -169,7 +169,7 @@ export async function runCreateFactsFile(machineName: string, jsonText: string):
169169
return runCommandAndSendTelemetry(
170170
'Writing /etc/rhsm/facts/podman-desktop-redhat-account-ext.facts',
171171
'subscriptionManagerCreateFactsFileError',
172-
PODMAN_COMMANDS.CREATE_FACTS_FILE(machineName, jsonText.replace('\n', '\\n')),
172+
PODMAN_COMMANDS.createFactFile(machineName, jsonText.replace('\n', '\\n')),
173173
errTelemetryHandler,
174174
);
175175
}
@@ -178,7 +178,7 @@ export async function runStopPodmanMachine(machineName: string): Promise<RunResu
178178
return runCommandAndSendTelemetry(
179179
'Podman machine stop',
180180
'stopPodmanMachineError',
181-
PODMAN_COMMANDS.MACHINE_STOP(machineName),
181+
PODMAN_COMMANDS.machineStop(machineName),
182182
errTelemetryHandler,
183183
);
184184
}
@@ -187,7 +187,7 @@ export async function runStartPodmanMachine(machineName): Promise<RunResult> {
187187
return runCommandAndSendTelemetry(
188188
'Podman machine start',
189189
'startPodmanMachineError',
190-
PODMAN_COMMANDS.MACHINE_START(machineName),
190+
PODMAN_COMMANDS.machineStart(machineName),
191191
errTelemetryHandler,
192192
);
193193
}

tests/tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"compilerOptions": {
3+
"strictNullChecks": true,
34
"lib": [ "ES2017", "webworker" ],
45
"module": "esnext",
56
"target": "esnext",

tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"compilerOptions": {
33
"strict": true,
4+
"strictNullChecks": true,
45
"lib": [ "ES2017", "webworker" ],
56
"module": "esnext",
67
"target": "esnext",

0 commit comments

Comments
 (0)