UNPKG

826 BJavaScriptView Raw
1// @flow
2
3import express from 'express'
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 = express()
15 server.set('x-powered-by', 'mainframe-bot-sdk')
16
17 const context = createContext(config)
18 const router = createRouter(handlers, context)
19 server.use(router)
20
21 return server
22}
23
24export const startServer = (handlers: Handlers, cfg?: Object) => {
25 const config = createConfig(cfg)
26 validateConfig(config)
27
28 const server = createServer(handlers, config)
29 server.listen(config.port, () => {
30 log(`listening on port ${config.port}`)
31 })
32}