80 lines
2.0 KiB
JavaScript
Executable File
80 lines
2.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const fs = require("fs")
|
|
const OAS = require("oas-normalize")
|
|
const swaggerInline = require("swagger-inline")
|
|
const { exec } = require("child_process")
|
|
|
|
// Storefront API
|
|
swaggerInline(
|
|
["./packages/medusa/src/models", "./packages/medusa/src/api/routes/store"],
|
|
{
|
|
base: "./docs/api/store-spec3-base.json",
|
|
}
|
|
).then((gen) => {
|
|
const oas = new OAS(gen)
|
|
oas
|
|
.validate(true)
|
|
.then(() => {
|
|
fs.writeFileSync("./docs/api/store-spec3.json", gen)
|
|
})
|
|
.catch((err) => {
|
|
console.log("Error in store")
|
|
console.error(err)
|
|
process.exit(1)
|
|
})
|
|
})
|
|
|
|
swaggerInline(
|
|
["./packages/medusa/src/models", "./packages/medusa/src/api/routes/store"],
|
|
{
|
|
base: "./docs/api/store-spec3-base.json",
|
|
format: "yaml",
|
|
}
|
|
).then((gen) => {
|
|
fs.writeFileSync("./docs/api/store-spec3.yaml", gen)
|
|
exec("rm -rf docs/api/store/ && yarn run -- redocly split docs/api/store-spec3.yaml --outDir=docs/api/store/", (error, stdout, stderr) => {
|
|
if (error) {
|
|
throw new Error(`error: ${error.message}`)
|
|
}
|
|
console.log(`${stderr || stdout}`);
|
|
});
|
|
})
|
|
|
|
// Admin API
|
|
swaggerInline(
|
|
["./packages/medusa/src/models", "./packages/medusa/src/api/routes/admin"],
|
|
{
|
|
base: "./docs/api/admin-spec3-base.json",
|
|
}
|
|
).then((gen) => {
|
|
const oas = new OAS(gen)
|
|
oas
|
|
.validate(true)
|
|
.then(() => {
|
|
fs.writeFileSync("./docs/api/admin-spec3.json", gen)
|
|
})
|
|
.catch((err) => {
|
|
console.log("Error in admin")
|
|
console.error(err)
|
|
process.exit(1)
|
|
})
|
|
})
|
|
|
|
swaggerInline(
|
|
["./packages/medusa/src/models", "./packages/medusa/src/api/routes/admin"],
|
|
{
|
|
base: "./docs/api/admin-spec3-base.json",
|
|
format: "yaml",
|
|
}
|
|
).then((gen) => {
|
|
fs.writeFileSync("./docs/api/admin-spec3.yaml", gen)
|
|
exec("rm -rf docs/api/admin/ && yarn run -- redocly split docs/api/admin-spec3.yaml --outDir=docs/api/admin/", (error, stdout, stderr) => {
|
|
if (error) {
|
|
throw new Error(`error: ${error.message}`)
|
|
}
|
|
console.log(`${stderr || stdout}`);
|
|
return;
|
|
});
|
|
})
|