import { CallbackComponent } from 'systemic' import { ErrorRequestHandler, Express, RequestHandler } from 'express' export type AppConfig = { settings: Record } export type ServerConfig = { port: number host?: string shutdown?: { delay?: string } } type MiddlewareOptions = { notFound?: RequestHandler error?: ErrorRequestHandler } export type MiddleWareConfig = { showErrorDetail?: boolean } /** * Systemic component that creates and configures an Express app * @param options optionally a function that creates a basic Express app can be passed into the component */ export function app(options?: { express?: () => Express }): CallbackComponent /** * Starts the Express server */ export function server(): CallbackComponent /** * Adds default notFound and error middleware to the app * @param options Custom notfound and error middleware can be passed in. If omitted default middleware will be used. */ export function defaultMiddleware( options?: MiddlewareOptions, ): CallbackComponent