UNPKG

starlight-openapi

Version:

Starlight plugin to generate documentation from OpenAPI/Swagger specifications.

24 lines (19 loc) 718 B
import type { ViteUserConfig } from 'astro' import type { Schema } from './schema' export function vitePluginStarlightOpenAPISchemas(schemas: Schema[]): VitePlugin { const moduleId = `virtual:starlight-openapi-schemas` const resolvedModuleId = `\0${moduleId}` const moduleContent = `export default ${JSON.stringify( Object.fromEntries(schemas.map((schema) => [schema.config.base, schema])), )}` return { name: `vite-plugin-starlight-openapi-schemas`, load(id) { return id === resolvedModuleId ? moduleContent : undefined }, resolveId(id) { return id === moduleId ? resolvedModuleId : undefined }, } } type VitePlugin = NonNullable<ViteUserConfig['plugins']>[number]