UNPKG

946 BJavaScriptView Raw
1/* @flow */
2import { createError, handleErrors } from 'micro-boom';
3import { router, get, post } from 'microrouter';
4import makeCors from 'micro-cors';
5import micro from 'micro';
6
7import { createClient } from '../build/redis-client';
8
9const cors = makeCors();
10
11import type { Config } from '../types/Config.type';
12import commit from './commit';
13import subscribe from './subscribe';
14import query from './query'
15
16export default (config: Config) => {
17 const statusClient = createClient(config.redis, { debug: true });
18 const committer = commit(config);
19 const {service: subscriber, unsubscribe} = subscribe(config);
20 const querier = query(config);
21
22 const service = handleErrors(cors(router(
23 get('/subscribe', subscriber),
24 post('/commit', committer),
25 get('/query', querier),
26 () => {
27 throw createError(404)
28 }
29 )), config.debug);
30
31 const server = micro(service);
32
33 server.on('close', unsubscribe);
34
35 return server;
36}