Skip to content

ryota-ka/koa-fp-ts-router

Repository files navigation

koa-fp-ts-router

npm

A Koa router middleware built on the top of fp-ts-routing.

Installation

Note that these packages are peer dependencies of this library, which need to be installed separately.

Using npm

$ npm install koa-fp-ts-router

Using yarn

$ yarn add koa-fp-ts-router

Usage

import { end, lit, str } from 'fp-ts-routing';
import Koa from 'koa';
import { Router } from 'koa-fp-ts-router';

const app = new Koa();

// matches
const root = end; // `/`
const user = lit('users').then(str('id')).then(end); // `/users/:id`

// routes
const router = new Router();

router.get(root, function (ctx) {
  ctx.body = 'Hello, world!';
});

router.get(user, function (ctx) {
  ctx.body = `Hello, ${ctx.params.id}!`;
});

// Use the router middleware
app.use(router.routes());

app.listen(3000);