Flow

Create reusable function pipelines with flow

What is Flow?

Flow creates reusable function pipelines by composing functions together. Unlike pipe which processes a value immediately, flow creates a new function that can be used anywhere. This is perfect for creating reusable transformation pipelines.

// Instead of repeating logic:
const process1 = (x) => c(b(a(x)))
const process2 = (x) => c(b(a(x)))

// Use flow:
const process = flow(a, b, c)
Composition
With Option
With Either
Reusable flows
♻️

Reusable Pipelines

Create functions that can be used anywhere

Point-Free Style

Define transformations without naming parameters

🏗️

Function Composition

Build complex operations from simple parts

🔒

Type-Safe

Compiler ensures all functions connect properly

Flow in Action

❌ Manual Composition

const processUser = (user: User) => {
  const validated = validate(user)
  const transformed = transform(validated)
  return format(transformed)
}

// Can't reuse easily
// Repeating logic everywhere

✅ Flow Approach

const processUser = flow(
  validate,
  transform,
  format
)

// Reusable pipeline
// Point-free style
// Compose anywhere

Practice Exercises

1

Basic Flow

Learn about basic flow in fp-ts flow

beginnerStart
2

With Option

Learn about with option in fp-ts flow

beginnerStart
3

Composing Flows

Learn about composing flows in fp-ts flow

beginnerStart
4

With Either

Learn about with either in fp-ts flow

intermediateStart
5

Practical Example

Learn about practical example in fp-ts flow

intermediateStart

Why Learn Flow?

🌊

Master Flow

Learn the fundamental concepts and patterns that make Flow powerful

💪

5 Exercises

Practice with hands-on exercises from beginner friendly level

🚀

Production Ready

Apply Flow patterns to build robust, type-safe applications