MediumPro challengeJavaScriptTypeScript

Method Chaining — Fluent Interface

TypeScriptClean CodePatternsFluent Interface

Method chaining creates readable, declarative code. Each method returns this to allow chaining.

// dirty — verbose, repetitive assignment
function solve(items: number[]): number[] {
  let result = items;
  result = result.filter(x => x > 0);
  result = result.map(x => x * 2);
  result = result.slice(0, 3);
  return result;
}

Implement `createPipeline(items)` that returns a fluent builder with filter(fn), map(fn), take(n) and value() methods — all chainable.

createPipeline([1,-2,3,4,5]).filter(x=>x>0).map(x=>x*2).take(2).value()[2, 6]

Sample tests

Test #1filter positives → double → take 3
Input: [[1,-2,3,4,5]]
Output: [2,6,8]
Test #2All negative → empty after filter
Input: [[-1,-2,-3]]
Output: []
Test #3All positive → double all → take 3
Input: [[10,20,30,40]]
Output: [20,40,60]