Files
medusa-store/www/apps/api-reference/utils/get-schema-content.ts
Shahed Nasser b2122c4073 docs: fixes and refactoring for API reference (#9708)
* docs: fixes and refactoring for API reference

* add route caching

* remove caching

* use next cache
2024-10-22 18:20:06 +03:00

30 lines
838 B
TypeScript

import { promises as fs } from "fs"
import { parseDocument } from "yaml"
import { SchemaObject } from "../types/openapi"
import dereference from "./dereference"
import { unstable_cache } from "next/cache"
async function getSchemaContent_(schemaPath: string, baseSchemasPath: string) {
const schemaContent = await fs.readFile(schemaPath, "utf-8")
const schema = parseDocument(schemaContent).toJS() as SchemaObject
// resolve references in schema
const dereferencedDocument = await dereference({
basePath: baseSchemasPath,
schemas: [schema],
})
return {
dereferencedDocument,
originalSchema: schema,
}
}
const getSchemaContent = unstable_cache(
async (schemaPath: string, baseSchemasPath: string) =>
getSchemaContent_(schemaPath, baseSchemasPath),
["tag-schema"]
)
export default getSchemaContent