Arkhe
ἀρχή - « origine »
Alternative moderne et légère à lodash. Manipulation de données, type guards et utilitaires de fonctions avec un design TypeScript-first et un tree-shaking optimal.
Arkhe fournit un ensemble soigné de fonctions utilitaires pour le développement TypeScript quotidien. Contrairement à Lodash, chaque fonction est écrite en TypeScript de A à Z, avec une inférence de types stricte et aucune vérification de types runtime. Les données en entrée sont validées et les erreurs remontent immédiatement (fail fast, fail loud).
La bibliothèque est distribuée en ES modules avec des imports granulaires, pour que les bundlers puissent éliminer automatiquement le code inutilisé.
Quelques exemples
Chaque import cible une seule fonction pour un tree-shaking optimal. Votre bundler n'inclut que le code que vous utilisez réellement, gardant votre bundle de production minimal :
import { chunk } from "pithos/arkhe/array/chunk";
import { groupBy } from "pithos/arkhe/array/group-by";
import { get } from "pithos/arkhe/object/get";
import { debounce } from "pithos/arkhe/function/debounce";
const users = [{ name: "Alice", role: "admin" }, { name: "Bob", role: "user" }];
chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]]
groupBy(users, (u) => u.role); // { admin: [...], user: [...] }
get(users[0], "name", "Anonymous"); // "Alice"
debounce(handleSearch, 300);
chunkdécoupe un tableau en groupes d'une taille donnée.groupBycatégorise les éléments par une fonction clé.getaccède en toute sécurité aux propriétés imbriquées avec une valeur par défaut.debouncelimite la fréquence d'appel d'une fonction, utile pour les champs de recherche ou les handlers de resize
Quand l'utiliser
Arkhe couvre les besoins les plus courants de manipulation de données dans les projets TypeScript. Que vous transformiez des collections, remodéliez des objets, formatiez des chaînes de caractères ou contrôliez l'exécution de fonctions, Arkhe fournit un utilitaire type-safe et immuable pour le travail :
- Tableaux : chunk, groupBy, partition, difference, intersection, orderBy...
- Objets : get, set, merge, pick, omit, evolve...
- Chaînes de caractères : camelCase, kebabCase, capitalize, template...
- Fonctions : debounce, throttle, memoize, pipe, curry...
- Async : retry, parallel, defer, sleep...
- Types : Nullable, Arrayable, PartialKeys, type guards...
Quand NE PAS l'utiliser
Arkhe se concentre sur les utilitaires de données à usage général. Pour des besoins spécialisés, d'autres modules Pithos sont plus adaptés :
Migrer depuis Lodash
Étape 1 : Installer Pithos
- npm
- pnpm
- yarn
- bun
npm install @pithos/core
pnpm install @pithos/core
yarn add @pithos/core
bun add @pithos/core
Étape 2 : Remplacer les imports progressivement
Pas besoin de tout migrer d'un coup. Remplacez une fonction à la fois :
// Avant
import { chunk, groupBy } from "lodash-es";
// Après : remplacer une à la fois
import { chunk } from "pithos/arkhe/array/chunk";
import { groupBy } from "lodash-es"; // migrer plus tard
Étape 3 : Consulter la table d'équivalence
Toutes les fonctions Lodash n'ont pas un équivalent Arkhe. Certaines ont des remplacements JavaScript natifs, et certaines sont intentionnellement exclues. Consultez la table d'équivalence complète pour une correspondance exhaustive.
Étape 4 : Exécuter vos tests
Arkhe fournit des utilitaires similaires à Lodash mais le comportement peut différer sur certains cas limites :
- null/undefined : Arkhe throw sur une entrée invalide, Lodash retourne silencieusement
undefinedou une valeur par défaut - Clonage profond : les objets complexes (Date, Map, Set, RegExp...) peuvent être gérés différemment
- Prototypes : Arkhe ignore
__proto__, seules les propriétés propres comptent
Pour les fonctions qui ont été remplacées par du JavaScript natif, Taphos fournit des fonctions dépréciées avec des suggestions IDE pour une migration en douceur vers leurs équivalents natifs.
Ressources associées
- Quand utiliser Arkhe — Comparez Arkhe avec les alternatives et trouvez quand c'est le bon choix
- Taille de bundle & performance d'Arkhe — Comparaison détaillée de taille de bundle avec Lodash et es-toolkit
- Référence API Arkhe — Documentation API complète pour tous les utilitaires Arkhe