@bemedev/pipe
v0.1.0
Published
A utility for creating and managing pipelines in Typescript.
Maintainers
Readme
@bemedev/pipe
N.B : Open all links in a new tab to avoid losing your place in the documentation.
Une bibliothèque élégante pour composer des fonctions en TypeScript. Simplifiez votre code en créant des pipelines de traitement typés et performants.
Installation
pnpm
pnpm install @bemedev/pipenpm
npm install @bemedev/pipebun
bun add @bemedev/pipeUtilisation
import { pipe } from '@bemedev/pipeline';
// Exemple simple
const add1 = (x: number) => x + 1;
const double = (x: number) => x * 2;
const piped = pipe(add1, double);
console.log(piped(2)); // Affiche 6 (= (2+1)*2)
// Exemple plus complexe
const processData = pipe(
(x: number) => x + 1, // Ajoute 1
x => x * 2, // Multiplie par 2
x => x - 3, // Soustrait 3
x => x / 2, // Divise par 2
x => x ** 2, // Élève au carré
);
console.log(processData(2)); // Affiche 2.25 (= ((((2+1)*2)-3)/2)^2)API
pipe(...fns)
Crée un pipeline de fonctions, où chaque fonction reçoit le résultat de la précédente.
Caractéristiques
- Entièrement typé (jusqu'à 20 fonctions)
- Performances optimisées
- Support de TypeScript avec inférence de types
Exemples d'utilisation avancée
// Transformation de chaînes
const formatText = pipe(
(s: string) => s.trim(),
s => s.toUpperCase(),
s => s + '!',
);
console.log(formatText(' hello ')); // Affiche "HELLO!"
// Manipulation d'objets
const enrichObject = pipe(
(obj: { a: number }) => ({ ...obj, b: obj.a + 1 }),
obj => ({ ...obj, c: obj.b * 2 }),
);
console.log(enrichObject({ a: 1 })); // Affiche { a: 1, b: 2, c: 4 }pipe.notTyped(...fns)
Version non typée de pipe pour les cas où vous avez besoin de chaîner
plus de 20 fonctions.
// Chaîner un grand nombre de fonctions
const addMany = pipe.notTyped(
...Array.from({ length: 100 }, () => (x: number) => x + 1),
);
console.log(addMany(0)); // Affiche 100Types utilitaires
La bibliothèque exporte plusieurs types utiles:
Fn1: Type de base pour une fonction à un argumentNextFn<T>: Fonction prenant comme argument le type de retour de TTupleOfLength<T, N>: Tuple de longueur N contenant des éléments de type T
CHANGELOG
Licence
MIT
Auteur
chlbri ([email protected])
