fumadocs-openapi
Version:
Generate MDX docs for your OpenAPI spec
34 lines (33 loc) • 1.21 kB
JavaScript
// @ts-expect-error -- nothing
import js2xml from 'xml-js/lib/js2xml';
/**
* Convert input value to hardcoded string (with quotes)
*/
export function inputToString(value, format = 'application/json') {
if (typeof value === 'string')
return value;
if (format === 'application/json') {
return JSON.stringify(value, null, 2);
}
if (format === 'application/x-ndjson') {
return Array.isArray(value)
? value.map((v) => JSON.stringify(v)).join('\n')
: JSON.stringify(value, null, 2);
}
if (format === 'application/x-www-form-urlencoded') {
const params = new URLSearchParams();
if (typeof value !== 'object')
throw new Error(`For url encoded data, \`value\` must be an object, but received: ${typeof value}`);
for (const key in value) {
if (value[key])
params.set(key, String(value[key]));
}
return params.toString();
}
return js2xml(value, { compact: true, spaces: 2 });
}
export function escapeString(str, delimit) {
if (!delimit)
return JSON.stringify(str);
return `${delimit}${str.replaceAll(delimit, `\\${delimit}`)}${delimit}`;
}