Files
medusa-store/www/utils/packages/docs-generator/src/commands/run-release.ts
Shahed Nasser 91f5ac91a9 docs-util: add script to generate events info (#12340)
* docs-util: add script to generate events info

* add property and parent name to json
2025-05-01 14:44:24 +03:00

84 lines
2.2 KiB
TypeScript

import filterFiles from "../utils/filter-files.js"
import path from "path"
import DocblockGenerator from "../classes/generators/docblock.js"
import getMonorepoRoot from "../utils/get-monorepo-root.js"
import { GitManager } from "../classes/helpers/git-manager.js"
import OasGenerator from "../classes/generators/oas.js"
import { CommonCliOptions } from "../types/index.js"
import DmlGenerator from "../classes/generators/dml.js"
import RouteExamplesGenerator from "../classes/generators/route-examples.js"
import EventsGenerator from "../classes/generators/events.js"
export default async function ({ type, tag, ...options }: CommonCliOptions) {
const gitManager = new GitManager()
console.log(`Get files in commits since ${tag || "last release"}`)
const files = tag
? await gitManager.getCommitFilesSinceRelease(tag)
: await gitManager.getCommitFilesSinceLastRelease()
// filter changed files
let filteredFiles = filterFiles(files)
if (!filteredFiles.length) {
console.log("No applicable files changed. Canceling...")
return
}
console.log(
`${filteredFiles.length} files have changed. Running generator on them...`
)
filteredFiles = filteredFiles.map((filePath) =>
path.resolve(getMonorepoRoot(), filePath)
)
if (type === "all" || type === "docs") {
const docblockGenerator = new DocblockGenerator({
paths: filteredFiles,
...options,
})
await docblockGenerator.run()
}
if (type === "all" || type === "oas") {
const oasGenerator = new OasGenerator({
paths: filteredFiles,
...options,
})
await oasGenerator.run()
}
if (type === "all" || type === "dml") {
const dmlGenerator = new DmlGenerator({
paths: filteredFiles,
...options,
})
await dmlGenerator.run()
}
if (type === "all" || type === "route-examples") {
const routeExamplesGenerator = new RouteExamplesGenerator({
paths: filteredFiles,
...options,
})
await routeExamplesGenerator.run()
}
if (type === "all" || type === "events") {
const eventsGenerator = new EventsGenerator({
paths: filteredFiles,
...options,
})
await eventsGenerator.run()
}
console.log(`Finished generating docs for ${filteredFiles.length} files.`)
}