// @flow import express from 'express' import { createConfig, validateConfig } from './config' import { createContext } from './context' import log from './log' import { createRouter } from './router' import type { Config, Handlers } from './types' export const createServer = (handlers: Handlers, config: Config) => { const server = express() server.set('x-powered-by', 'mainframe-bot-sdk') const context = createContext(config) const router = createRouter(handlers, context) server.use(router) return server } export const startServer = (handlers: Handlers, cfg?: Object) => { const config = createConfig(cfg) validateConfig(config) const server = createServer(handlers, config) server.listen(config.port, () => { log(`listening on port ${config.port}`) }) }