Skip to content
← Public packages

@kody/api-research

Research third-party APIs: registry search, provider discovery, OpenAPI summarize, and client scaffold.

src/parse-spec.ts

32 lines · 974 B · TypeScript
import { parseOpenApiSpec } from './parse-spec-lib.ts'
import type { ParsedOpenApiSpec } from './spec-types.ts'

export type ParseSpecInput = {
	/** Raw OpenAPI 3.x JSON or YAML text. */
	text: string
}

/**
 * Parse OpenAPI 3.x JSON or YAML into a bounded operation inventory.
 * Use after fetch-spec when you already have the document text.
 *
 * @param input - Raw spec text
 * @returns Parsed spec with operations, servers, and auth schemes
 *
 * @example
 * import parseSpec from 'kody:@kody/api-research/parse-spec'
 * const parsed = await parseSpec({
 *   text: JSON.stringify({
 *     openapi: '3.0.3',
 *     info: { title: 'Demo', version: '1' },
 *     paths: { '/ping': { get: { responses: { '200': { description: 'ok' } } } } },
 *   }),
 * })
 */
export default async function parseSpec(
	input: ParseSpecInput,
): Promise<ParsedOpenApiSpec> {
	return parseOpenApiSpec(input.text)
}

export { deriveOperationSlug, parseOpenApiSpec } from './parse-spec-lib.ts'