Biome, votre nouvelle lib js (encore)

Julien

Tech lead frontend

@fjulien

Formatage et analyse de code


                        
						
function OnepointTalk(params) {
	const {
		subject = "Hello biome!",
		duration,
		description,
		startTalk,
	} = params;
	if (duration <= 1 || !startTalk) {
		return 

Pas possible

; } return (

{subject.toUpperCase()}

Le talk dure {duration} minute{duration > 1 ? "s" : ""} {Array.isArray(description) ? (
    {description.map((d, i) => (
  • {d}
  • ))}
) : (

{description}

)}
); }

Analyse statique / Linter

Les outils

Internet
IDE
Librairies
Rust
> 95%
Formatage
ES6

Rapide ?

171 127 lignes, 2 104 fichiers

J'ai testé

                    
hyperfine
    --show-output
    --ignore-failure
    --runs 10
    --export-markdown benchmark.md
-n Prettier "npx prettier ./**/*.{js,ts} --write --log-level=error"
-n Biome "npx @biomejs/biome format . --write  --max-diagnostics=0  --log-level=error"

                

Projet actuel

10,858s
2,311s

NodeJS

NodeJS

Biome Prettier
Fichiers modifiés 14_516 14_127
Insertions(+) 1_198_125 1_824_350
Suppressions(-) 620_973 857_413
Moy [s] 11.508 147.050
Min [s] 11.034 131.901
Max [s] 11.982 162.199

Biome est 12.78 fois plus rapide que Prettier

Démo

Feuille de route

Langue Analyse syntaxique Formatage Analyse statique
Javascript
TypeScript
JSX
TSX
JSON
JSONC
HTML ⌛️ 🚫 🚫
Vue ⚠️ ⚠️ ⚠️
Svelte ⚠️ ⚠️ ⚠️
Astro ⚠️ ⚠️ ⚠️
CSS ✅️ ⌛️ ⌛️
YAML ⌛️ 🚫 🚫
GraphQL ⌛️ 🚫 🚫
Markdown 🚫 🚫 🚫
✅: OK 🚫: Pas démarré ⌛️: En cours ⚠️: Partiellement

Conclusion

Dernière version v1.7 sortie le 15 avril 2024

Merci