UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

31 lines (30 loc) 1.26 kB
'use client'; import { escapeString, inputToString } from '../utils/input-to-string.js'; import { ident } from '../requests/_shared.js'; export const generator = (url, data) => { const s = []; s.push(`curl -X ${data.method} "${url}"`); for (const header in data.header) { const value = `${header}: ${data.header[header].value}`; s.push(`-H "${value}"`); } for (const k in data.cookie) { const param = data.cookie[k]; s.push(`--cookie ${JSON.stringify(`${k}=${param.value}`)}`); } if (data.body && data.bodyMediaType === 'multipart/form-data') { if (typeof data.body !== 'object') throw new Error('[CURL] request body must be an object.'); for (const [key, value] of Object.entries(data.body)) { s.push(`-F ${key}=${JSON.stringify(inputToString(value))}`); } } else if (data.body && data.bodyMediaType) { const escaped = escapeString(inputToString(data.body, // @ts-expect-error -- assume the body media type is supported data.bodyMediaType), "'"); s.push(`-H "Content-Type: ${data.bodyMediaType}"`); s.push(`-d ${escaped}`); } return s.flatMap((v, i) => ident(v, i > 0 ? 1 : 0)).join(' \\\n'); };