import { Parser, File, Type, useApp } from '@kubb/react' import { useOas } from '@kubb/plugin-oas/hooks' import type { OasTypes } from '@kubb/oas' import type { ReactNode } from 'react' import type { FileMeta, PluginTs } from '../types.ts' type TemplateProps = { /** * Name of the function */ name: string typeName: string api: OasTypes.OASDocument } function Template({ name, typeName, api }: TemplateProps): ReactNode { return ( <> {`export const ${name} = ${JSON.stringify(api, undefined, 2)} as const`}
{`Infer`} ) } const defaultTemplates = { default: Template } as const type Props = { name: string typeName: string /** * This will make it possible to override the default behaviour. */ Template?: React.ComponentType> } export function OasType({ name, typeName, Template = defaultTemplates.default }: Props): ReactNode { const oas = useOas() return