From 35f0503fe7aaac735e2acb05edd8bf1d29e7a712 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Mon, 13 Jan 2025 15:36:21 +0100 Subject: [PATCH 1/2] fix(scripts): generate snippets.json files --- scripts/specs/__tests__/snippets.test.ts | 8 ++++---- scripts/specs/format.ts | 4 +--- scripts/specs/snippets.ts | 8 +++++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/specs/__tests__/snippets.test.ts b/scripts/specs/__tests__/snippets.test.ts index 289eb025c2d..1c24bd8b8ff 100644 --- a/scripts/specs/__tests__/snippets.test.ts +++ b/scripts/specs/__tests__/snippets.test.ts @@ -1,13 +1,13 @@ import { describe, expect, it } from 'vitest'; -import { parseCodeSamples } from '../snippets.ts'; +import { generateSnippetsJSON } from '../snippets.ts'; import type { CodeSamples } from '../types.ts'; describe('init', () => { it('parses a multi line import', () => { expect( JSON.stringify( - parseCodeSamples({ + generateSnippetsJSON({ foo: { default: ` // Initialize the client @@ -56,7 +56,7 @@ var response = await client.CreateConfigAsync( it('parses a single line import', () => { expect( JSON.stringify( - parseCodeSamples({ + generateSnippetsJSON({ foo: { default: ` // Initialize the client @@ -105,7 +105,7 @@ describe('initialize', () => { it("doesn't stop at `client`", () => { expect( JSON.stringify( - parseCodeSamples({ + generateSnippetsJSON({ foo: { default: ` // Initialize the client foo bar BAAAAAAAAAAAAAAAAAAAAAZ diff --git a/scripts/specs/format.ts b/scripts/specs/format.ts index b5d80889834..6fe2e9500ab 100644 --- a/scripts/specs/format.ts +++ b/scripts/specs/format.ts @@ -10,7 +10,7 @@ import { GENERATORS, run, toAbsolutePath } from '../common.ts'; import { createSpinner } from '../spinners.ts'; import type { Spec } from '../types.ts'; -import { getCodeSampleLabel, parseCodeSamples, transformGeneratedSnippetsToCodeSamples } from './snippets.ts'; +import { getCodeSampleLabel, transformGeneratedSnippetsToCodeSamples } from './snippets.ts'; export async function lintCommon(useCache: boolean): Promise { const spinner = createSpinner('linting common spec'); @@ -53,8 +53,6 @@ export async function bundleSpecsForDoc(bundledPath: string, clientName: string) const tagsDefinitions = bundledSpec.tags; const codeSamples = await transformGeneratedSnippetsToCodeSamples(clientName); - parseCodeSamples(JSON.parse(JSON.stringify(codeSamples))); - for (const [pathKey, pathMethods] of Object.entries(bundledSpec.paths)) { for (const [method, specMethod] of Object.entries(pathMethods)) { if (specMethod['x-helper']) { diff --git a/scripts/specs/snippets.ts b/scripts/specs/snippets.ts index 34585ab3722..7e31f308af2 100644 --- a/scripts/specs/snippets.ts +++ b/scripts/specs/snippets.ts @@ -19,7 +19,7 @@ export function getCodeSampleLabel(language: Language): OpenAPICodeSample['label } // Iterates over the result of `transformSnippetsToCodeSamples` in order to generate a JSON file for the doc to consume. -export function parseCodeSamples(codeSamples: CodeSamples): CodeSamples { +export function generateSnippetsJSON(codeSamples: CodeSamples): CodeSamples { for (const [language, operationWithSamples] of Object.entries(codeSamples)) { for (const [operation, samples] of Object.entries(operationWithSamples)) { if (operation === 'import') { @@ -110,5 +110,11 @@ export async function transformGeneratedSnippetsToCodeSamples(clientName: string } } + const jsonSnippets = generateSnippetsJSON(JSON.parse(JSON.stringify(codeSamples))); + await fsp.writeFile( + toAbsolutePath(`docs/bundled/${clientName}-snippets.json`), + JSON.stringify(jsonSnippets, null, 2), + ); + return codeSamples; } From dfd3aa5c49e43aad5b06f3654b8ac12ead784d44 Mon Sep 17 00:00:00 2001 From: shortcuts Date: Mon, 13 Jan 2025 15:44:23 +0100 Subject: [PATCH 2/2] trigger