Zum Inhalt

Willkommen bei @arcaelas/collection

Arcaelas Logo

Eine leistungsstarke TypeScript-Collection-Bibliothek mit MongoDB-ähnlicher Query-DSL

npm Version Lizenz GitHub Sterne

Übersicht

@arcaelas/collection ist eine umfassende Utility-Bibliothek, die native JavaScript-Arrays mit leistungsstarken Filter-, Abfrage- und Transformationsfunktionen erweitert. Inspiriert von Laravels Collections und MongoDBs Abfragesprache bietet sie eine elegante und typsichere API für die Arbeit mit Datensammlungen.

Hauptmerkmale

  • MongoDB-ähnliche Query-DSL - Intuitive Abfragesyntax mit Operatoren wie $eq, $gt, $in, $contains und mehr
  • Typsicheres TypeScript - Vollständige TypeScript-Unterstützung mit generischen Typen für Autovervollständigung und Typprüfung
  • Umfangreiche API - Über 30 integrierte Methoden zum Filtern, Transformieren und Aggregieren von Daten
  • Methodenverkettung - Fluent Interface zum Komponieren komplexer Operationen
  • Erweiterbar - Fügen Sie benutzerdefinierte Methoden mit Makros hinzu
  • Keine Abhängigkeiten - Leichtgewichtig mit minimalen externen Abhängigkeiten
  • Leistungsoptimiert - Effiziente Query-Kompilierung und native Array-Delegation

Schnellstart

Installation

npm install @arcaelas/collection
# oder
yarn add @arcaelas/collection

Grundlegende Verwendung

import Collection from "@arcaelas/collection";

const users = new Collection([
  { name: "Alice", age: 25, active: true },
  { name: "Bob", age: 30, active: false },
  { name: "Charlie", age: 35, active: true }
]);

// Filtern mit MongoDB-ähnlichen Abfragen
const activeUsers = users.filter({ active: true });

// Filtern mit Abfrageoperatoren
const adults = users.filter({ age: { $gte: 18 } });

// Methoden verketten
const result = users
  .filter({ active: true })
  .where("age", ">=", 25)
  .sort("age", "desc")
  .first();

console.log(result); // { name: "Charlie", age: 35, active: true }

Warum @arcaelas/collection?

Problem

Native JavaScript-Arrays haben begrenzte Funktionalität für komplexe Datenoperationen:

// Nativer Ansatz - ausführlich und fehleranfällig
const activeUsers = users.filter(user => user.active);
const adults = users.filter(user => user.age >= 18);
const sorted = users.sort((a, b) => b.age - a.age);

Lösung

Collection bietet eine elegante, verkettbare API:

// Collection-Ansatz - sauber und ausdrucksstark
const result = collection
  .filter({ active: true, age: { $gte: 18 } })
  .sort("age", "desc");

Grundkonzepte

Abfrageoperatoren

Verwenden Sie MongoDB-Style-Operatoren für leistungsstarke Abfragen:

collection.filter({
  age: { $gte: 18, $lt: 65 },
  name: { $regex: /^A/ },
  skills: { $contains: "TypeScript" },
  role: { $in: ["admin", "moderator"] }
});

Methodenverkettung

Komponieren Sie komplexe Operationen mit fluenter Syntax:

collection
  .where("verified", true)
  .whereNot("banned", true)
  .sort("created_at", "desc")
  .paginate(1, 20);

Typsicherheit

Nutzen Sie TypeScript für Compile-Time-Sicherheit:

interface User {
  id: number;
  name: string;
  email: string;
}

const users = new Collection<User>([...]);

// TypeScript kennt die Form
users.first()?.email; // string | undefined

Anwendungsfälle

Datenfilterung

const products = new Collection(inventory);

const available = products.filter({
  stock: { $gt: 0 },
  price: { $lte: 100 },
  category: { $in: ["electronics", "gadgets"] }
});

Aggregation

const orders = new Collection(orderData);

const totalRevenue = orders.sum("total");
const avgOrderValue = orders.sum("total") / orders.length;
const ordersByStatus = orders.groupBy("status");

Datentransformation

const users = new Collection(userData);

const sanitized = users
  .forget("password", "token")
  .unique("email")
  .sort("created_at", "desc");

Was kommt als Nächstes?

  • Erste Schritte

    Lernen Sie die Grundlagen und erstellen Sie Ihre erste Collection

  • Grundkonzepte

    Verstehen Sie die grundlegenden Prinzipien und Muster

  • Abfrageoperatoren

    Meistern Sie die MongoDB-ähnliche Abfragesyntax

  • API-Referenz

    Erkunden Sie alle verfügbaren Methoden und Signaturen

  • Beispiele

    Sehen Sie praktische Beispiele und gängige Muster

  • Erweitert

    Leistungstipps und fortgeschrittene Techniken

Community & Support

Lizenz

MIT © 2025 Arcaelas Insiders


Mit ❤️ vom Arcaelas Insiders Team gebaut

Möchten Sie eines unserer Open-Source-Projekte diskutieren? Senden Sie uns eine Nachricht auf Twitter oder sponsern Sie uns bei GitHub Sponsors.