generate-jsdocs.sh - JavaScript API Documentation Generation
flowchart TD
Start([Start]) --> ParseArgs["Parse command-line arguments"]
ParseArgs --> HasArgs{FILES
provided?}
HasArgs -->|no| ScanDir["Scan octoprint_uptime/static/js
for *.js files"]
HasArgs -->|yes| ValidateFiles["Validate provided
file paths exist"]
ScanDir --> CheckFiles{Files
found?}
ValidateFiles --> ValidOK{All files
valid?}
CheckFiles -->|no| Warning["Warn: No JavaScript files
Create empty docs/api/javascript.md"]
CheckFiles -->|yes| FindJsdoc
ValidOK -->|no| Abort["FAIL: Missing files"]
ValidOK -->|yes| FindJsdoc["Find jsdoc2md tool
local or global"]
FindJsdoc --> ToolFound{jsdoc2md
available?}
ToolFound -->|no| InstallPrompt["Prompt to install
jsdoc2md"]
ToolFound -->|yes| GenMarkdown
InstallPrompt --> InstallOK{User
accepted?}
InstallOK -->|yes| NPMInstall["npm install
jsdoc-to-markdown"]
InstallOK -->|no| Exit1["Exit without
generation"]
NPMInstall --> GenMarkdown["Generate Markdown
using jsdoc2md"]
GenMarkdown --> NormalizeMD["Normalize output
- Fix whitespace
- Trim trailing spaces"]
NormalizeMD --> SaveOutput["Save to
docs/api/javascript.md"]
SaveOutput --> Success([Documentation generated])
Warning --> Success
Exit1 --> End([End])
Abort --> Fail([Exit with error])
classDef action fill:#ecfeff,stroke:#06b6d4
classDef decision fill:#fef3c7,stroke:#f59e0b
classDef success fill:#d1fae5,stroke:#10b981
classDef error fill:#fee2e2,stroke:#ef4444
class ParseArgs,ScanDir,ValidateFiles,FindJsdoc,NPMInstall,GenMarkdown,NormalizeMD,SaveOutput action
class HasArgs,CheckFiles,ValidOK,ToolFound,InstallOK decision
class Success success
class Warning,Abort,Fail,Exit1 error
Back to build scripts