|
| 1 | +import { createAuthorization } from "docusaurus-plugin-openapi-docs/lib/markdown/createAuthorization"; |
| 2 | +import { createCallbacks } from "docusaurus-plugin-openapi-docs/lib/markdown/createCallbacks"; |
| 3 | +import { createDeprecationNotice } from "docusaurus-plugin-openapi-docs/lib/markdown/createDeprecationNotice"; |
| 4 | +import { createDescription } from "docusaurus-plugin-openapi-docs/lib/markdown/createDescription"; |
| 5 | +import { createHeading } from "docusaurus-plugin-openapi-docs/lib/markdown/createHeading"; |
| 6 | +import { createMethodEndpoint } from "docusaurus-plugin-openapi-docs/lib/markdown/createMethodEndpoint"; |
| 7 | +import { createParamsDetails } from "docusaurus-plugin-openapi-docs/lib/markdown/createParamsDetails"; |
| 8 | +import { createRequestBodyDetails } from "docusaurus-plugin-openapi-docs/lib/markdown/createRequestBodyDetails"; |
| 9 | +import { createRequestHeader } from "docusaurus-plugin-openapi-docs/lib/markdown/createRequestHeader"; |
| 10 | +import { createStatusCodes } from "docusaurus-plugin-openapi-docs/lib/markdown/createStatusCodes"; |
| 11 | +import { createVendorExtensions } from "docusaurus-plugin-openapi-docs/lib/markdown/createVendorExtensions"; |
| 12 | +import { render } from "docusaurus-plugin-openapi-docs/lib/markdown/utils"; |
| 13 | + |
| 14 | +function createServersTable(servers: any[]) { |
| 15 | + if (servers.length) { |
| 16 | + return `| URL | Description | |
| 17 | +| ---- | ----- | |
| 18 | +${servers |
| 19 | + .map((server) => { |
| 20 | + return `| ${server.url} | ${server.description} | `.replace("\n", "<br/>"); |
| 21 | + }) |
| 22 | + .join("\n")} |
| 23 | + `; |
| 24 | + } |
| 25 | +} |
| 26 | + |
| 27 | +export function myCustomApiMdGenerator({ |
| 28 | + title, |
| 29 | + api: { |
| 30 | + deprecated, |
| 31 | + "x-deprecated-description": deprecatedDescription, |
| 32 | + description, |
| 33 | + method, |
| 34 | + path, |
| 35 | + extensions, |
| 36 | + parameters, |
| 37 | + requestBody, |
| 38 | + responses, |
| 39 | + callbacks, |
| 40 | + servers, // destructure servers here |
| 41 | + }, |
| 42 | + infoPath, |
| 43 | + frontMatter, |
| 44 | +}: ApiPageMetadata) { |
| 45 | + return render([ |
| 46 | + `import ApiTabs from "@theme/ApiTabs";\n`, |
| 47 | + `import DiscriminatorTabs from "@theme/DiscriminatorTabs";\n`, |
| 48 | + `import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";\n`, |
| 49 | + `import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";\n`, |
| 50 | + `import MimeTabs from "@theme/MimeTabs";\n`, |
| 51 | + `import ParamsItem from "@theme/ParamsItem";\n`, |
| 52 | + `import ResponseSamples from "@theme/ResponseSamples";\n`, |
| 53 | + `import SchemaItem from "@theme/SchemaItem";\n`, |
| 54 | + `import SchemaTabs from "@theme/SchemaTabs";\n`, |
| 55 | + `import Heading from "@theme/Heading";\n`, |
| 56 | + `import OperationTabs from "@theme/OperationTabs";\n`, |
| 57 | + `import TabItem from "@theme/TabItem";\n\n`, |
| 58 | + createHeading(title), |
| 59 | + createMethodEndpoint(method, path), |
| 60 | + createServersTable(servers), |
| 61 | + infoPath && createAuthorization(infoPath), |
| 62 | + frontMatter.show_extensions |
| 63 | + ? createVendorExtensions(extensions) |
| 64 | + : undefined, |
| 65 | + createDeprecationNotice({ deprecated, description: deprecatedDescription }), |
| 66 | + createDescription(description), |
| 67 | + requestBody || parameters ? createRequestHeader("Request") : undefined, |
| 68 | + createParamsDetails({ parameters, type: "path" }), |
| 69 | + createParamsDetails({ parameters, type: "query" }), |
| 70 | + createParamsDetails({ parameters, type: "header" }), |
| 71 | + createParamsDetails({ parameters, type: "cookie" }), |
| 72 | + createRequestBodyDetails({ |
| 73 | + title: "Body", |
| 74 | + body: requestBody, |
| 75 | + } as RequestBodyProps), |
| 76 | + createStatusCodes({ responses }), |
| 77 | + createCallbacks({ callbacks }), |
| 78 | + ]); |
| 79 | +} |
0 commit comments