Skip to content

emilniklas/pipeline.ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pipeline.ts

An asynchronous request/response pipeline for TypeScript.

Usage

import { Pipeline } from "pipeline.ts"

interface Request {
  input: string
}

interface Response {
  output: string
}

const pipeline = new Pipeline<Request, Response>([

  function(req: Request, next: (req: Request) => Response): Promise<Response> {
    return next({
      input: req.input.toUpperCase() + '!'  
    })
  }

  function(req: Request): Response {
    return {
      output: `Response: ${req.input}`
    }
  }
])

const request: Request = {
  input: "Hello world"
}

pipeline
  .pipe(request)
  .then(console.log)

// { "output": "Response: HELLO WORLD!" }

About

Middleware pipeline for TypeScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published