chore(frontend): target ES2022 (#39420)

Bump the TypeScript and Vite targets from ES2020 to ES2022. The frontend
already calls ES2022 APIs like `Object.hasOwn` and `Array.prototype.at`
without polyfills, so downleveling class syntax only added helpers. JS
output shrinks by 36 KB.

The only new syntax-level requirement is Safari 16.4 for mermaid, which
ships class static blocks. Pale Moon supports all emitted syntax since
32.2.

The ES2022 target implies `useDefineForClassFields`, so
`noImplicitOverride` is enabled to flag class fields that shadow
inherited DOM properties.
This commit is contained in:
silverwind authored and GitHub committed 2026-09-25 05:56:07 +00:00
1 parent 722e52334a
commit 455f30a7b6
4 files changed
+6 -11

No files matched your search

@@ -4,13 +4,7 @@
import rule from './unescaped-html-literal.ts';
import {RuleTester} from 'eslint';
class VitestRuleTester extends RuleTester {
static describe = describe;
static it = it;
static itOnly = it.only;
}
const ruleTester = new VitestRuleTester();
const ruleTester = new RuleTester();
ruleTester.run('unescaped-html-literal', rule, {
valid: [