UNPKG

nextjs-swagger-autogen

Version:

Auto-generate Swagger documentation for Next.js API routes

71 lines (70 loc) 2.8 kB
"use strict"; "use client"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactSwagger = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const swagger_ui_react_1 = __importDefault(require("swagger-ui-react")); const ReactSwagger = ({ spec, docExpansion = "list", defaultModelsExpandDepth = 1, defaultModelRendering = "example", displayOperationId = false, displayRequestDuration = false, filter = false, showExtensions = false, showCommonExtensions = false, tryItOutEnabled = true, supportedSubmitMethods = ["get", "post", "put", "delete", "patch"], validatorUrl = null, withCredentials = false, persistAuthorization = false, deepLinking = true, onComplete, requestInterceptor, responseInterceptor, ...props }) => { const memoizedSpec = (0, react_1.useMemo)(() => spec, [spec]); const swaggerConfig = (0, react_1.useMemo)(() => ({ spec: memoizedSpec, docExpansion, defaultModelsExpandDepth, defaultModelRendering, displayOperationId, displayRequestDuration, filter, showExtensions, showCommonExtensions, tryItOutEnabled, validatorUrl, withCredentials, persistAuthorization, deepLinking, onComplete, requestInterceptor, responseInterceptor, showMutatedRequest: true, ...props, }), [ memoizedSpec, docExpansion, defaultModelsExpandDepth, defaultModelRendering, displayOperationId, displayRequestDuration, filter, showExtensions, showCommonExtensions, tryItOutEnabled, validatorUrl, withCredentials, persistAuthorization, deepLinking, onComplete, requestInterceptor, responseInterceptor, props, ]); const handleComplete = (0, react_1.useCallback)(() => { const originalConsoleWarn = console.warn; console.warn = (...args) => { if (args[0] && typeof args[0] === "string" && (args[0].includes("UNSAFE_componentWillReceiveProps") || args[0].includes("componentWillReceiveProps"))) { return; } originalConsoleWarn.apply(console, args); }; if (onComplete) { onComplete(); } }, [onComplete]); return ((0, jsx_runtime_1.jsx)("div", { style: { display: "grid" }, children: (0, jsx_runtime_1.jsx)(swagger_ui_react_1.default, { ...swaggerConfig, onComplete: handleComplete }) })); }; exports.ReactSwagger = ReactSwagger;