Pureline JavaScript
const-first, Semikolons, Braces, async/await.
Pureline JavaScript ist explizit, wo die Sprache Nachlässigkeit erlaubt: Blöcke immer mit Braces, Semikolons immer, `const` als Default und ein linearer Kontrollfluss über async/await.
Profilregeln
Braces sind Pflicht
Jeder Kontrollfluss-Body bekommt einen Block, auch bei genau einer Anweisung.
if (!user) return; while (queue.length) process(queue.shift()); if (!user) {
return;
} Semikolons verwenden
Pureline JavaScript setzt Semikolons konsequent und verlässt sich nicht auf Automatic Semicolon Insertion.
const session = createSession(user)
session.start() const total = base + tax
[fee, tip].forEach(add) const session = createSession(user);
session.start(); const zuerst
const ist der Default. let nur bei echter Neuzuweisung. var wird nicht verwendet.
var user = loadUser(); let session = createSession(user);
session.start(); const user = loadUser(); let count = 0;
count++; async / await bevorzugen
Promise-Ketten werden vermieden, wenn async/await einen klareren Kontrollfluss erzeugt.
function loadUser(id) {
return fetch(`/users/${id}`)
.then(response => response.ok ? response.json() : null);
} async function loadUser(id) {
const response = await fetch(`/users/${id}`);
if (!response.ok) {
return null;
}
return response.json();
} Arrow Functions im Kontext
Benannte Logik darf eine normale Funktion sein. Arrow Functions sind ideal für lokale Callbacks, aber nicht der Default für alles.
const createSession = (user) => {
const session = new Session(user);
session.start();
return session;
}; function createSession(user) {
return new Session(user);
} users.filter(user => user.active()); Destructuring muss Klarheit schaffen
Destructuring ist gut, wenn es die Absicht zeigt. Große Objekte werden nicht destrukturiert, nur weil die Sprache es erlaubt.
const { id, name, email, role, createdAt, updatedAt, settings: { theme, locale } } = user; const { id, name } = user; Folder Density
Ein JavaScript-Feature- oder Quellordner enthält standardmäßig höchstens **10 produktive Source-Module**.
Barrel-Dateien wie index.js, Tests, generierte Dateien und reine Metadaten-Dateien zählen nicht mit.
Wird das Limit überschritten, wird nach Verantwortung geteilt, nicht nach willkürlicher Dateizahl.
session/
index.js
state/
transport/
storage/ Core-Regeln im JavaScript-Checker
Zusätzlich zu den Profilregeln prüft der Checker für JavaScript diese Regeln aus dem Pureline Core: