UNPKG

895 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 = (config: Config, handlers: Handlers) => {
12 const server = express()
13 server.set('x-powered-by', 'mainframe-bot-sdk')
14
15 const context = createContext(config, handlers)
16 const router = createRouter(context, handlers)
17 server.use(router)
18
19 return server
20}
21
22export const startServer = (cfg: Object, handlers?: Handlers) => {
23 let config
24
25 if (handlers) {
26 config = createConfig(cfg)
27 } else {
28 config = createConfig()
29 handlers = cfg
30 }
31
32 validateConfig(config)
33
34 const server = createServer(config, handlers)
35 server.listen(config.port, () => {
36 log(`listening on port ${config.port}`)
37 })
38}