Skip to main content
Home
This release is 1 version behind 0.4.0 — the latest version of @core/pipe. Jump to latest

@core/pipe@0.3.1
Built and signed on GitHub Actions

Works with
This package works with Node.js, DenoIt is unknown whether this package works with Cloudflare Workers, Browsers
It is unknown whether this package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
It is unknown whether this package works with Browsers
JSR Score70%
Downloads4/wk
Publisheda year ago (0.3.1)

Performs consecutive operations on a value in TypeScript

pipe

jsr test codecov

Performs consecutive operations on a value in TypeScript. An alternative library of the proposal of Pipe Operator (|>) for JavaScript. It supports type inference and type checking of the operator functions.

Note

When the number of operator functions applied to pipe get more than twenty, the result of type inference of each operator function become unknown and users need to annotate the type explicitly.

Usage

Pipe a value through a series of operator functions.

import { pipe } from "@core/pipe";

const result = pipe(
  1,
  (v) => v + 1, // inferred as (v: number) => number
  (v) => v * 2, // inferred as (v: number) => number
  (v) => v.toString(), // inferred as (v: number) => string
);
console.log(result); // "4"

Or use async module to pipe a value through a series of asynchronous operator functions.

import { pipe } from "@core/pipe/async";

const result = await pipe(
  1,
  (v) => Promise.resolve(v + 1), // inferred as (v: number) => number | Promise<number>
  (v) => Promise.resolve(v * 2), // inferred as (v: number) => number | Promise<number>
  (v) => Promise.resolve(v.toString()), // inferred as (v: number) => string | Promise<string>
);
console.log(result); // "4"

License

The code follows MIT license written in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.

Built and signed on
GitHub Actions

Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@core/pipe

Import symbol

import * as pipe from "@core/pipe";
or

Import directly with a jsr specifier

import * as pipe from "jsr:@core/pipe";

Add Package

pnpm i jsr:@core/pipe
or (using pnpm 10.8 or older)
pnpm dlx jsr add @core/pipe

Import symbol

import * as pipe from "@core/pipe";

Add Package

yarn add jsr:@core/pipe
or (using Yarn 4.8 or older)
yarn dlx jsr add @core/pipe

Import symbol

import * as pipe from "@core/pipe";

Add Package

vlt install jsr:@core/pipe

Import symbol

import * as pipe from "@core/pipe";

Add Package

npx jsr add @core/pipe

Import symbol

import * as pipe from "@core/pipe";