Create pipeline, execute them, modify them, copy them ...
- See changelog
- Tell it in my github issues dont be afraid :)
npm i pipipe
const createPipeline = require("pipipe");
// OR
import createPipeline from "pipipe";
Or in the browser
<script src="https://unpkg.com/pipipe@1.0.0/dist/index.js"></script>
const reverseStrPipeline = createPipe()
.pipe((str: string) => str.split(""))
.pipe((arr: string[]) => arr.reverse())
.pipe((arr: string[]) => arr.join(""));
const result = reverseStrPipeline.execute("hello world");
console.log(result); //dlrow olleh
Copy a pipeline to create a new one from it
const lowerCasePipeline = createPipe().pipe((str: string) => str.toLowerCase());
const splitPipepline = lowerCasePipeline
.copy()
.pipe((str: string) => str.split(""));
console.log(
splitPipepline.execute("HI"), // "hi"
lowerCasePipeline.execute("HI") // ["h", "i"]
);
Execute asynchronously the pipeline
type UserList = { id: string; name: string; token: string }[];
const getUserTokenPipeline = createPipe()
.pipe(async (id: string) => {
const req = await fetch(`/userById/${id}`);
return await req.json();
})
.pipe((result: UserList) => result[0]?.token)
.catch(handleErr);
const token = await getUserTokenPipeline.executeAsync("123456789");
Insert a new pipe to a specific position
const reverseStrPipeline = createPipe()
.pipe((str: string) => str.split(""))
.pipe((arr: string[]) => arr.join(""))
.pipeInsert((arr: string[]) => arr.reverse(), 1);
const result = reverseStrPipeline.execute("hello world");
console.log(result); //dlrow olleh
Same as the pop, shift, splice array method to remove pipe(s) from the pipeline