UNPKG

2.21 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.buildSwaggerHTML = exports.getSwaggerAssetsAbsoluteFSPath = exports.buildSwaggerInitJS = void 0;
4const constants_1 = require("./constants");
5const helpers_1 = require("./helpers");
6function buildSwaggerInitJS(swaggerDoc, customOptions = {}) {
7 const { swaggerOptions = {}, swaggerUrl } = customOptions;
8 const swaggerInitOptions = {
9 swaggerDoc,
10 swaggerUrl,
11 customOptions: swaggerOptions
12 };
13 const jsInitOptions = (0, helpers_1.buildJSInitOptions)(swaggerInitOptions);
14 return constants_1.jsTemplateString.replace('<% swaggerOptions %>', jsInitOptions);
15}
16exports.buildSwaggerInitJS = buildSwaggerInitJS;
17let swaggerAssetsAbsoluteFSPath;
18function getSwaggerAssetsAbsoluteFSPath() {
19 if (!swaggerAssetsAbsoluteFSPath) {
20 const swaggerUi = require('swagger-ui-dist');
21 swaggerAssetsAbsoluteFSPath = swaggerUi.getAbsoluteFSPath();
22 }
23 return swaggerAssetsAbsoluteFSPath;
24}
25exports.getSwaggerAssetsAbsoluteFSPath = getSwaggerAssetsAbsoluteFSPath;
26function buildSwaggerHTML(baseUrl, swaggerDoc, customOptions = {}) {
27 const { customCss = '', customJs = '', customJsStr = '', customfavIcon = false, customSiteTitle = 'Swagger UI', customCssUrl = '', explorer = false } = customOptions;
28 const favIconString = customfavIcon
29 ? `<link rel="icon" href="${customfavIcon}" />`
30 : constants_1.favIconHtml;
31 const explorerCss = explorer
32 ? ''
33 : '.swagger-ui .topbar .download-url-wrapper { display: none }';
34 return constants_1.htmlTemplateString
35 .replace('<% customCss %>', customCss)
36 .replace('<% explorerCss %>', explorerCss)
37 .replace('<% favIconString %>', favIconString)
38 .replace(/<% baseUrl %>/g, baseUrl)
39 .replace('<% customJs %>', customJs ? `<script src="${customJs}"></script>` : '')
40 .replace('<% customJsStr %>', customJsStr ? `<script> ${customJsStr} </script>` : '')
41 .replace('<% customCssUrl %>', customCssUrl ? `<link href="${customCssUrl}" rel="stylesheet">` : '')
42 .replace('<% title %>', customSiteTitle);
43}
44exports.buildSwaggerHTML = buildSwaggerHTML;