convict-doc
Easily generate Markdown documentation from your Convict schema.
Currently, documentation is rendered as a Markdown table.
Other output formats may be supported in the future.
CLI Usage Guide:
Installation
Install globally (if published to npm):
npm install -g convict-doc
Or use directly with pnpm
, npx
, or yarn
:
npx convict-doc ...
Command Syntax
convict-doc --input <schema-file> [--output <output-file>] [--pretty]
Options
Option | Alias | Required | Description |
---|---|---|---|
--input | -i | Yes | Path to the Convict schema file (must export default ) |
--output | -o | No | Path to write the generated Markdown file |
--pretty | -p | No | Pretty-print the Markdown output |
--order | -r | No | Column order for the Markdown table. Accepts multiple values (e.g. --order name env ). |
Example
Generate documentation and print to console:
convict-doc --input ./config/schema.js
Generate and save pretty-printed Markdown to a file:
convict-doc -i ./config/schema.js -o ./docs/config.md -p
Notes
- The input file must export the Convict schema as its default export.
- If
--output
is not specified, the documentation is printed to stdout. - Use
--pretty
to format the Markdown output using Prettier. - The
--order
option lets you customize the columns and their order in the Markdown table.
Valid values:name
,default
,arg
,env
,format
,nullable
,sensitive
,doc
. - If
--order
is not specified, the default order is used.
API Usage
Simply pass the Convict schema object into the renderDoc
-function
import {renderDoc} from "convict-doc"
const configSchema: Convict.Schema<YourSchema> = {};
const documentation = renderDoc(configSchema)
console.log(documentation)