Files
Trilium/apps/build-docs/src/swagger.ts

33 lines
950 B
TypeScript
Raw Normal View History

2025-11-01 20:03:53 +02:00
import BuildContext from "./context";
import { join } from "path";
2025-11-01 20:15:38 +02:00
import { execSync } from "child_process";
2025-11-01 20:22:17 +02:00
import { mkdirSync } from "fs";
2025-11-01 20:03:53 +02:00
2025-11-01 20:22:17 +02:00
interface BuildInfo {
specPath: string;
outDir: string;
}
2025-11-01 20:15:38 +02:00
const DIR_PREFIX = "rest-api"
2025-11-01 20:22:17 +02:00
const buildInfos: BuildInfo[] = [
{
// Paths are relative to Git root.
specPath: "apps/server/src/assets/api-openapi.yaml",
outDir: `${DIR_PREFIX}/internal`
2025-11-01 20:22:17 +02:00
},
{
specPath: "apps/server/src/assets/etapi.openapi.yaml",
outDir: `${DIR_PREFIX}/etapi`
2025-11-01 20:22:17 +02:00
}
];
export default function buildSwagger({ baseDir, gitRootDir }: BuildContext) {
2025-11-01 20:22:17 +02:00
for (const { specPath, outDir } of buildInfos) {
const absSpecPath = join(gitRootDir, specPath);
2025-11-01 20:22:17 +02:00
const targetDir = join(baseDir, outDir);
mkdirSync(outDir, { recursive: true });
execSync(`pnpm redocly build-docs ${absSpecPath} -o ${targetDir}/index.html`, { stdio: "inherit" });
2025-11-01 20:22:17 +02:00
}
2025-11-01 20:03:53 +02:00
}