https://github.com/ryota-ka/koa-fp-ts-router
A Koa router middleware built on the top of fp-ts-routing
https://github.com/ryota-ka/koa-fp-ts-router
fp-ts fp-ts-routing koa koajs middleware router
Last synced: 21 days ago
JSON representation
A Koa router middleware built on the top of fp-ts-routing
- Host: GitHub
- URL: https://github.com/ryota-ka/koa-fp-ts-router
- Owner: ryota-ka
- Created: 2020-05-03T16:39:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-27T15:40:51.000Z (7 months ago)
- Last Synced: 2025-03-25T20:51:14.567Z (about 1 month ago)
- Topics: fp-ts, fp-ts-routing, koa, koajs, middleware, router
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/koa-fp-ts-router
- Size: 527 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# koa-fp-ts-router

A [Koa](https://koajs.com/) router middleware built on the top of [`fp-ts-routing`](https://www.npmjs.com/package/fp-ts-routing).
## Installation
Note that these packages are peer dependencies of this library, which need to be installed separately.
- [`fp-ts`](https://www.npmjs.com/package/fp-ts)
- [`fp-ts-routing`](https://www.npmjs.com/package/fp-ts-routing)
- [`io-ts`](https://www.npmjs.com/package/io-ts)
- [`koa`](https://www.npmjs.com/package/koa)### Using [`npm`](https://www.npmjs.com/)
```
$ npm install koa-fp-ts-router
```### Using [`yarn`](https://yarnpkg.com/)
```
$ yarn add koa-fp-ts-router
```## Usage
```typescript
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);
```