68 lines
1.7 KiB
TypeScript
68 lines
1.7 KiB
TypeScript
import {
|
|
generateMintlifyDocs,
|
|
syncSvixTransforms,
|
|
} from "./utils/mintlifyTransform.js";
|
|
import { resolvePaths } from "./utils/paths.js";
|
|
import {
|
|
generateSdksInParallel,
|
|
mergeCodeSamples,
|
|
} from "./utils/sdkGeneration.js";
|
|
import { generateZodSchemas } from "./utils/zodSchemaGeneration.js";
|
|
|
|
async function main() {
|
|
const paths = resolvePaths();
|
|
|
|
const { writeOpenApi_2_3_0, writeOpenApi_2_3_0_Stripped } = await import(
|
|
"./v2.3/openapi2.3.js"
|
|
);
|
|
|
|
console.log("Generating OpenAPI specs v2.3 (full + stripped)...");
|
|
await Promise.all([
|
|
writeOpenApi_2_3_0({ outputFilePath: paths.openApiOutput }),
|
|
writeOpenApi_2_3_0_Stripped({
|
|
outputFilePath: paths.openApiStrippedOutput,
|
|
}),
|
|
]);
|
|
console.log(
|
|
`OpenAPI documents exported to ${paths.openApiOutput} and ${paths.openApiStrippedOutput}`,
|
|
);
|
|
|
|
// Generate TypeScript and Python SDKs in parallel
|
|
await generateSdksInParallel({
|
|
speakeasySdkDir: paths.tsSdkDir,
|
|
pythonSdkDir: paths.pythonSdkDir,
|
|
});
|
|
|
|
// Merge code samples into OpenAPI for docs
|
|
mergeCodeSamples({
|
|
speakeasySdkDir: paths.tsSdkDir,
|
|
pythonSdkDir: paths.pythonSdkDir,
|
|
outputPath: paths.docsOpenApiPath,
|
|
});
|
|
|
|
// Generate Mintlify docs (transform OpenAPI + generate MDX)
|
|
await generateMintlifyDocs({
|
|
openApiPath: paths.docsOpenApiPath,
|
|
docsDir: paths.docsDir,
|
|
});
|
|
|
|
// Sync Slack/Discord Svix transform sources into docs snippets
|
|
syncSvixTransforms({
|
|
svixTransformsDir: paths.svixTransformsDir,
|
|
docsDir: paths.docsDir,
|
|
});
|
|
|
|
// Generate Zod schemas for autumn-js from SDK types
|
|
await generateZodSchemas({
|
|
sdkDir: paths.tsSdkDir,
|
|
outputDir: paths.autumnJsGeneratedDir,
|
|
});
|
|
|
|
console.log("Done!");
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error("Failed:", error);
|
|
process.exit(1);
|
|
});
|