From 05e1d8cd96ab950d844f1bcacebf7f1e725fc901 Mon Sep 17 00:00:00 2001 From: "Nolann B." <100787331+nolannbiron@users.noreply.github.com> Date: Fri, 21 Feb 2025 12:38:55 +0100 Subject: [PATCH] Hide x-gitbook-* symbols in OpenAPI blocks (#2863) --- .changeset/happy-plants-grab.md | 5 +++++ .../react-openapi/src/OpenAPIResponseExample.tsx | 3 ++- packages/react-openapi/src/stringifyOpenAPI.ts | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 .changeset/happy-plants-grab.md diff --git a/.changeset/happy-plants-grab.md b/.changeset/happy-plants-grab.md new file mode 100644 index 000000000..05077c072 --- /dev/null +++ b/.changeset/happy-plants-grab.md @@ -0,0 +1,5 @@ +--- +'@gitbook/react-openapi': patch +--- + +Hide x-gitbook-\* symbols in OpenAPI blocks diff --git a/packages/react-openapi/src/OpenAPIResponseExample.tsx b/packages/react-openapi/src/OpenAPIResponseExample.tsx index e8f19dea4..466f42313 100644 --- a/packages/react-openapi/src/OpenAPIResponseExample.tsx +++ b/packages/react-openapi/src/OpenAPIResponseExample.tsx @@ -5,6 +5,7 @@ import { checkIsReference, createStateKey, resolveDescription } from './utils'; import { OpenAPITabs, OpenAPITabsList, OpenAPITabsPanels } from './OpenAPITabs'; import { InteractiveSection } from './InteractiveSection'; import { json2xml } from './json2xml'; +import { stringifyOpenAPI } from './stringifyOpenAPI'; /** * Display an example of the response content. @@ -226,7 +227,7 @@ function stringifyExample(args: { example: OpenAPIV3.ExampleObject; xml: boolean return json2xml(example.value); } - return JSON.stringify(example.value, null, 2); + return stringifyOpenAPI(example.value, null, 2); } /** diff --git a/packages/react-openapi/src/stringifyOpenAPI.ts b/packages/react-openapi/src/stringifyOpenAPI.ts index 33705a646..6104346c6 100644 --- a/packages/react-openapi/src/stringifyOpenAPI.ts +++ b/packages/react-openapi/src/stringifyOpenAPI.ts @@ -1,6 +1,17 @@ /** * Stringify an OpenAPI object. Same API as JSON.stringify. */ -export function stringifyOpenAPI(body: unknown, transformer?: null, indent?: number): string { - return JSON.stringify(body, transformer, indent); +export function stringifyOpenAPI(body: unknown, _?: null, indent?: number): string { + return JSON.stringify( + body, + (key, value) => { + // Ignore internal keys + if (key.startsWith('x-gitbook-')) { + return undefined; + } + + return value; + }, + indent, + ); }