@flowfuse/flowfuse
Version:
An open source low-code development platform
32 lines (30 loc) • 1.39 kB
JavaScript
/**
* All of the HTTP routes the forge server exposes.
*
* This includes three components:
*
* - {@link forge.routes.session session} - routes related to session handling, login/out etc
* - {@link forge.routes.api api} - routes related to the forge api
* - {@link forge.routes.ui ui} - routes that serve the forge frontend web app
*
* @namespace routes
* @memberof forge
*/
const fp = require('fastify-plugin')
module.exports = fp(async function (app, opts) {
app.decorate('getPaginationOptions', (request, defaults) => {
const result = { ...defaults, ...request.query }
if (result.query) {
result.query = result.query.trim()
}
return result
})
await app.register(require('./api-docs'))
await app.register(require('@fastify/websocket'))
await app.register(require('./auth'), { logLevel: app.config.logging.http })
await app.register(require('./api'), { prefix: '/api/v1', logLevel: app.config.logging.http })
await app.register(require('./ui'), { logLevel: app.config.logging.http })
await app.register(require('./setup'), { logLevel: app.config.logging.http })
await app.register(require('./storage'), { prefix: '/storage', logLevel: app.config.logging.http })
await app.register(require('./logging'), { prefix: '/logging', logLevel: app.config.logging.http })
}, { name: 'app.routes' })