Skip to content

Complex Workflows

Examples of complex workflows using the PIPELINE pillar.

Data Processing Workflow

typescript
const dataProcessingWorkflow = pipeline.compose([
  // Step 1: Validate input
  data => pipeline.validate(data, InputSchema),
  
  // Step 2: Transform data
  data => pipeline.map(data, item => transformItem(item)),
  
  // Step 3: Filter valid items
  data => pipeline.filter(data, item => item.isValid),
  
  // Step 4: Aggregate results
  data => data.aggregate(data, {
    groupBy: ['category'],
    sum: ['amount'],
    count: ['items']
  })
])

API Data Flow

typescript
const apiDataFlow = pipeline.compose([
  // Fetch data from API
  async () => service.get('/api/data'),
  
  // Validate response
  result => {
    if (Result.isErr(result)) return result
    return data.validate(result.value, ResponseSchema)
  },
  
  // Process data
  result => {
    if (Result.isErr(result)) return result
    return pipeline.map(result.value, processItem)
  },
  
  // Filter and transform
  result => {
    if (Result.isErr(result)) return result
    return pipeline.filter(result.value, item => item.active)
  }
])

Error Handling Workflow

typescript
const robustWorkflow = pipeline.compose([
  // Try primary operation
  data => {
    const result = primaryOperation(data)
    if (Result.isOk(result)) return result
    
    // Fallback operation
    return fallbackOperation(data)
  },
  
  // Validate result
  result => {
    if (Result.isErr(result)) return result
    return data.validate(result.value, ResultSchema)
  },
  
  // Transform for output
  result => {
    if (Result.isErr(result)) return result
    return data.transform(result.value, outputMapping)
  }
])

Next Steps

Released under the MIT License.