// @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 = (config: Config, handlers: Handlers) => { const server = express() server.set('x-powered-by', 'mainframe-bot-sdk') const context = createContext(config, handlers) const router = createRouter(context, handlers) server.use(router) return server } export const startServer = (cfg: Object, handlers?: Handlers) => { let config if (handlers) { config = createConfig(cfg) } else { config = createConfig() handlers = cfg } validateConfig(config) const server = createServer(config, handlers) server.listen(config.port, () => { log(`listening on port ${config.port}`) }) }