mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-26 14:43:39 +09:00
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.
Web Components
This webcomponents directory contains the source code for the web components used in the Gitea Web UI.
https://developer.mozilla.org/en-US/docs/Web/Web_Components
Guidelines
- These components are loaded in
<head>(before DOM body) in a separate entry point, they need to be lightweight to not affect the page loading time too much. - Do not import
svg.jsinto a web component because that file is currently not tree-shakeable, import svg files individually insteat. - Any custom element used inside a
.vuefile must be added towebComponentsinvite.config.tsso Vue does not try to resolve it as a component. That list also covers custom elements from dependencies.