waibu-mpa
Version:
MPA support for Waibu Framework
45 lines (41 loc) • 2.01 kB
JavaScript
import decorate from '../../lib/decorate.js'
import buildRoutes from '../../lib/build-routes.js'
import collectViewEngines from '../../lib/collect-view-engines.js'
import collectThemes from '../../lib/collect-themes.js'
import collectIconsets from '../../lib/collect-iconsets.js'
import handleSession from '../../lib/session/setup.js'
import subApp from '../../lib/sub-app.js'
import errorHandler from '../../lib/error-handler.js'
import notFoundHandler from '../../lib/not-found-handler.js'
import favicon from '../../lib/favicon.js'
const boot = {
level: 10,
errorHandler,
notFoundHandler,
handler: async function (prefix) {
const { importPkg, importModule } = this.app.bajo
const bodyParser = await importPkg('waibu:@fastify/formbody')
const routeHook = await importModule('waibu:/lib/webapp-scope/route-hook.js')
const handleMultipart = await importModule('waibu:/lib/webapp-scope/handle-multipart-body.js')
const handleCors = await importModule('waibu:/lib/webapp-scope/handle-cors.js')
const handleHelmet = await importModule('waibu:/lib/webapp-scope/handle-helmet.js')
const handleCompress = await importModule('waibu:/lib/webapp-scope/handle-compress.js')
const handleRateLimit = await importModule('waibu:/lib/webapp-scope/handle-rate-limit.js')
await this.webAppCtx.register(bodyParser)
await handleRateLimit.call(this, this.config.rateLimit)
await handleCors.call(this, this.config.cors)
await handleHelmet.call(this, this.config.helmet)
await handleCompress.call(this, this.config.compress)
await handleMultipart.call(this, this.config.multipart)
await decorate.call(this)
await handleSession.call(this)
await favicon.call(this)
await routeHook.call(this, this.ns)
await collectViewEngines.call(this)
await collectThemes.call(this)
await collectIconsets.call(this)
await buildRoutes.call(this, prefix)
await subApp.call(this)
}
}
export default boot