web: grammar fix and lint update

1. Merged the two SonarJS lints into one
2. Fixed a grammatical error in RedirectStage
This commit is contained in:
Ken Sternberg
2024-07-16 09:19:57 -07:00
parent 409934196c
commit 3ced637db3
3 changed files with 45 additions and 87 deletions

View File

@ -1,55 +0,0 @@
import { execFileSync } from "child_process";
import { ESLint } from "eslint";
import path from "path";
import process from "process";
// Code assumes this script is in the './web/scripts' folder.
const projectRoot = execFileSync("git", ["rev-parse", "--show-toplevel"], {
encoding: "utf8",
}).replace("\n", "");
process.chdir(path.join(projectRoot, "./web"));
const eslintConfig = {
overrideConfig: {
env: {
browser: true,
es2021: true,
},
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:lit/recommended",
"plugin:custom-elements/recommended",
"plugin:storybook/recommended",
"plugin:sonarjs/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 12,
sourceType: "module",
},
plugins: ["@typescript-eslint", "lit", "custom-elements", "sonarjs"],
rules: {
"indent": "off",
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double", { avoidEscape: true }],
"semi": ["error", "always"],
"@typescript-eslint/ban-ts-comment": "off",
"sonarjs/cognitive-complexity": ["error", 9],
"sonarjs/no-duplicate-string": "off",
"sonarjs/no-nested-template-literals": "off",
},
},
};
const updated = ["./src/", "./build.mjs", "./scripts/*.mjs"];
const eslint = new ESLint(eslintConfig);
const results = await eslint.lintFiles(updated);
const formatter = await eslint.loadFormatter("stylish");
const resultText = formatter.format(results);
const errors = results.reduce((acc, result) => acc + result.errorCount, 0);
// eslint-disable-next-line no-console
console.log(resultText);
process.exit(errors > 1 ? 1 : 0);

View File

@ -43,6 +43,7 @@ const eslintConfig = {
},
};
function findChangedFiles() {
const porcelainV1 = /^(..)\s+(.*$)/;
const gitStatus = execFileSync("git", ["status", "--porcelain", "."], { encoding: "utf8" });
@ -64,13 +65,31 @@ const checkable = (s) => isCheckable.test(s);
const ignored = /\/\.storybook\//;
const notIgnored = (s) => !ignored.test(s);
const updated = statuses.reduce(
return statuses.reduce(
(acc, [status, filename]) =>
modified(status) && checkable(filename) && notIgnored(filename)
? [...acc, path.join(projectRoot, filename)]
: acc,
[],
[]
);
}
if (process.argv.length > 2 && (process.argv[2] === "-h" || process.argv[2] === "--help")) {
// eslint-disable-next-line no-console
console.log(`Run eslint with extra-hard checks
options:
-c, --changed: (default) check only the files that have changed
-n, --nightmare: check all the files in the repository
-h, --help: This help message
`);
process.exit(0);
}
const updated =
process.argv.length > 2 && (process.argv[2] === "-n" || process.argv[2] === "--nightmare")
? ["./src/", "./build.mjs", "./scripts/*.mjs"]
: findChangedFiles();
const eslint = new ESLint(eslintConfig);
const results = await eslint.lintFiles(updated);

View File

@ -45,10 +45,7 @@ export class RedirectStage extends BaseStage<RedirectChallenge, FlowChallengeRes
if (this.promptUser) {
return;
}
console.debug(
"authentik/stages/redirect: redirecting to url from server",
this.challenge.to,
);
console.debug("authentik/stages/redirect: redirecting to url from server", this.challenge.to);
window.location.assign(this.challenge.to);
this.startedRedirect = true;
}
@ -60,10 +57,7 @@ export class RedirectStage extends BaseStage<RedirectChallenge, FlowChallengeRes
// As this wouldn't really be a redirect, show a message that the page can be closed
// and try to close it ourselves
if (!url.protocol.startsWith("http")) {
return html`<ak-empty-state
icon="fas fa-check"
header=${msg("You may close this page now.")}
>
return html`<ak-empty-state icon="fas fa-check" header=${msg("You may close this page now.")}>
</ak-empty-state>`;
}
return html`<ak-empty-state ?loading=${true} header=${msg("Loading")}> </ak-empty-state>`;
@ -79,7 +73,7 @@ export class RedirectStage extends BaseStage<RedirectChallenge, FlowChallengeRes
<div class="pf-c-login__main-body">
<form class="pf-c-form">
<div class="pf-c-form__group">
<p>${msg("You're about to be redirect to the following URL.")}</p>
<p>${msg("You're about to be redirected to the following URL.")}</p>
<code>${this.getURL()}</code>
</div>
<div class="pf-c-form__group pf-m-action">