UNPKG

775 BJavaScriptView Raw
1// @flow
2
3import Koa from 'koa'
4
5import { createConfig, validateConfig } from './config'
6import { createContext } from './context'
7import log from './log'
8import { createRouter } from './router'
9import type { Config, Handlers } from './types'
10
11export const createServer = (handlers: Handlers, config: Config) => {
12 log('create server', config)
13
14 const server = new Koa()
15 const context = createContext(config)
16 const router = createRouter(handlers, context)
17
18 server.use(router.routes())
19 server.use(router.allowedMethods())
20
21 return server
22}
23
24export const startServer = (handlers: Handlers, cfg?: Object) => {
25 const config = createConfig(cfg)
26 validateConfig(config)
27 createServer(handlers, config).listen(config.port)
28 log(`listening on port ${config.port}`)
29}