forked from tsai/budibase
4 changed files with 1766 additions and 35 deletions
@ -0,0 +1,59 @@ |
|||
const fs = require("fs") |
|||
const { join } = require("path") |
|||
const { createDoc } = require("apidoc") |
|||
const packageJson = require("../../package.json") |
|||
|
|||
const config = { |
|||
name: "Budibase API", |
|||
version: packageJson.version, |
|||
description: |
|||
"Documentation for the various API endpoints of the Budibase backend.", |
|||
title: "Budibase app service API", |
|||
} |
|||
|
|||
const disallowed = [] |
|||
|
|||
function filter(parsedRouteFiles) { |
|||
const tagToSearch = "url" |
|||
for (let routeFile of parsedRouteFiles) { |
|||
for (let route of routeFile) { |
|||
let routeInfo = route["local"] |
|||
if (disallowed.includes(routeInfo[tagToSearch])) { |
|||
const idx = routeFile.indexOf(route) |
|||
routeFile.splice(idx, 1) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
function generate() { |
|||
// start by writing a config file
|
|||
const configPath = join(__dirname, "config.json") |
|||
fs.writeFileSync(configPath, JSON.stringify(config)) |
|||
const mainPath = join(__dirname, "..", "..") |
|||
const srcPath = join(mainPath, "src", "api", "routes") |
|||
const assetsPath = join(mainPath, "builder", "assets", "docs") |
|||
if (!fs.existsSync(assetsPath)) { |
|||
fs.mkdirSync(assetsPath, { recursive: true }) |
|||
} |
|||
const doc = createDoc({ |
|||
src: srcPath, |
|||
dest: assetsPath, |
|||
silent: true, |
|||
filters: { |
|||
main: { |
|||
postFilter: filter, |
|||
}, |
|||
}, |
|||
config: configPath, |
|||
}) |
|||
if (typeof doc !== "boolean") { |
|||
console.log("Docs generated successfully.") |
|||
} else { |
|||
console.error("Unable to generate docs.") |
|||
} |
|||
// delete the temporary config file
|
|||
fs.unlinkSync(configPath) |
|||
} |
|||
|
|||
generate() |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue