code: async function idioCore(middlewareConfig = {}, config = {}) {
    const res = await startApp(middlewareConfig, config)
    const { url, app, server, router, middleware } = res
    /** @type {Object.<string, Middleware>} */
    const mw = middleware
  
    return { url, app, router, server, middleware: mw }
  }
docs: Start the server.
  @param {MiddlewareConfig} [middlewareConfig] Middleware configuration for the `idio` `core` server.
  @param {SessionOptions} [middlewareConfig.session] `session` options.
  @param {MulterOptions} [middlewareConfig.multer] `multer` options.
  @param {CSRFOptions} [middlewareConfig.csrf] `csrf` options.
  @param {BodyparserOptions} [middlewareConfig.bodyparser] `bodyparser` options.
  @param {CompressOptions} [middlewareConfig.compress] `compress` options.
  @param {CheckauthOptions} [middlewareConfig.checkauth] `checkauth` options.
  @param {LoggerOptions} [middlewareConfig.logger] `logger` options.
  @param {StaticOptions} [middlewareConfig.static] `static` options.
  @param {CorsOptions} [middlewareConfig.cors] `cors` options.
  @param {FrontendOptions} [middlewareConfig.frontend] `frontend` options. If the option is specified, the middleware always will be used, i.e., no need to pass `use: true`.
  @param {Config} [config] Server configuration object.
  @param {number} [config.port=5000] The port on which to start the server. Default `5000`.
  @param {string} [config.host="0.0.0.0"] The host on which to listen. Default `0.0.0.0`.
  @example
  
  // start a server, and serve files from the "static" directory.
  await idioCore({
  static: {
  use: true,
  root: 'static',
  config: {
  hidden: true,
  },
  },
  })