Saltar al contenido
Buscar
Ver todo el radar
Biome 2.5

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.

javascript
// Invalid: return in finally callback
Promise.resolve(1).finally(() => { return 2 })
​
// Valid: no return in finally callback
Promise.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.

diff
-<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.

Qué te llevas

  • 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

Este resumen lo escribimos a partir de las notas oficiales del release. Lo que no estaba ahí, no está acá.

Anuncio original de Biome

¿Quieres una clase de esto?

Si varias personas lo piden, entra al programa. No hace falta dejar mail ni nombre.