Fp-ts-skills fp-pipe-ref
Quick reference for pipe and flow. Use when user needs to chain functions, compose operations, or build data pipelines in fp-ts.
install
source · Clone the upstream repo
git clone https://github.com/whatiskadudoing/fp-ts-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/whatiskadudoing/fp-ts-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/quick-ref/fp-pipe-ref" ~/.claude/skills/whatiskadudoing-fp-ts-skills-fp-pipe-ref && rm -rf "$T"
manifest:
skills/quick-ref/fp-pipe-ref/SKILL.mdsource content
pipe & flow Quick Reference
pipe - Transform a Value
import { pipe } from 'fp-ts/function' // pipe(startValue, fn1, fn2, fn3) // = fn3(fn2(fn1(startValue))) const result = pipe( ' hello world ', s => s.trim(), s => s.toUpperCase(), s => s.split(' ') ) // ['HELLO', 'WORLD']
flow - Create Reusable Pipeline
import { flow } from 'fp-ts/function' // flow(fn1, fn2, fn3) returns a new function const process = flow( (s: string) => s.trim(), s => s.toUpperCase(), s => s.split(' ') ) process(' hello world ') // ['HELLO', 'WORLD'] process(' foo bar ') // ['FOO', 'BAR']
When to Use
| Use | When |
|---|---|
| Transform a specific value now |
| Create reusable transformation |
With fp-ts Types
import * as O from 'fp-ts/Option' import * as A from 'fp-ts/Array' // Option chain pipe( O.fromNullable(user), O.map(u => u.email), O.getOrElse(() => 'no email') ) // Array chain pipe( users, A.filter(u => u.active), A.map(u => u.name) )
Common Pattern
// Data last enables partial application const getActiveNames = flow( A.filter((u: User) => u.active), A.map(u => u.name) ) // Reuse anywhere getActiveNames(users1) getActiveNames(users2)