Biome 2.5.14: reglas nuevas y arreglos en formateo
Suma reglas nursery para promesas, Svelte y estilo de funciones, y corrige varios bugs de formateo en HTML, Vue, Svelte y Astro.
Reglas nuevas en el linter
Se agregaron cuatro reglas nursery. noReturnInFinally marca los return dentro de callbacks de Promise.prototype.finally(), porque ese valor no reemplaza el resultado original de la promesa. noSvelteAtDebugTags detecta tags {@debug} que quedaron olvidados en componentes Svelte y ofrece un fix seguro para borrarlos. useConsistentFunctionStyle exige que definas funciones como expresiones asignadas a una variable en vez de function declarations. useValidTestTitle chequea que los títulos de test y suite sean válidos.
// Invalid: return in finally callbackPromise.resolve(1).finally(() => { return 2 })// Valid: no return in finally callbackPromise.resolve(1).finally(() => { console.log(2) })Formateo de HTML en Vue, Svelte y Astro
El formateador de HTML dejó de tratar componentes con nombre PascalCase (como <Body> o <Ul>) como elementos nativos, y dejó de aplicarle formateo de bloque SVG a elementos desconocidos que coinciden en nombre con tags SVG. También se corrigió un bug donde biome check --write o biome lint --write reportaba un fix como aplicable pero no escribía nada dentro de expresiones de atributos HTML, por ejemplo un handler onclick en Svelte.
-<Body>- <div>content</div>-</Body>+<Body><div>content</div></Body>Modificadores accessor y override en TypeScript
Ahora Biome reporta error si combinás readonly y accessor en cualquier orden, porque no pueden usarse juntos. Además, override accessor value = 1 ya parsea correctamente, mientras que el orden invertido, accessor override, reporta que override tiene que ir antes que accessor.
Otros arreglos puntuales
source.fixAll.biome ya no ignora la opción formatter.formatWithErrors: aplica fixes seguros sin formatear archivos con errores de parseo cuando la opción está desactivada. Se resolvió una lentitud cuadrática al formatear o revisar objetos parentizados grandes, y un cuelgue de noUndeclaredCustomProperties al chequear hojas de estilo importadas desde módulos JS con muchas dependencias compartidas. También se agregó la opción requireExplicitCase a useExhaustiveSwitchCases para exigir todos los casos de una unión aunque exista un default.
What you get
Cuatro reglas nursery nuevas: promesas con finally, tags de debug de Svelte, estilo de funciones y títulos de test
Varios bugs de formateo HTML corregidos en componentes Vue, Svelte y Astro
Fixes de rendimiento: se eliminó una lentitud cuadrática y un cuelgue en un linter rule
TypeScript valida mejor las combinaciones de readonly, accessor y override
Want a class on this?
If enough people ask for it, it goes on the schedule. No email, no name needed.