You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const fs = require('fs');const path = require('path');const swaggerUi = require('swagger-ui-express');
function faviconUrl() { return process.env.NODE_ENV === "production" ? '/public/favicon.png' : 'http://localhost:3000/public/favicon.png'}
function useSwagger(app) { app.use('/api/docs', swaggerUi.serve); const options = { customCss: [ fs.readFileSync(path.resolve(__dirname, 'index.css')), fs.readFileSync(path.resolve(__dirname, 'dark-swagger.css')) ].join('\n\n\n'), customSiteTitle: 'AnythingLLM Developer API Documentation', customfavIcon: faviconUrl(), }
if (process.env.NODE_ENV === "production") { const swaggerDocument = require('./openapi.json'); app.get('/api/docs', swaggerUi.setup( swaggerDocument, { ...options, customJsStr: 'window.SWAGGER_DOCS_ENV = "production";\n\n' + fs.readFileSync(path.resolve(__dirname, 'index.js'), 'utf8'), }, )); } else { // we regenerate the html page only in development mode to ensure it is up-to-date when the code is hot-reloaded.
app.get( "/api/docs", async (_, response) => { // #swagger.ignore = true
const swaggerDocument = require('./openapi.json'); return response.send( swaggerUi.generateHTML( swaggerDocument, { ...options, customJsStr: 'window.SWAGGER_DOCS_ENV = "development";\n\n' + fs.readFileSync(path.resolve(__dirname, 'index.js'), 'utf8'), } ) ); } ); }}
module.exports = { faviconUrl, useSwagger }
|