Lehre is document block generator.
Generate JsDoc style document from source code.
yarn add -D lehre
cat src/app.ts | lehre --stdin
Specify directory and ignore patterns.
lehre --target-dir=./src --ignore-patterns="spec.ts"
Specify file.
lehre --target-file=./src/app.ts
Use babel parser(default parser is TypeScript compiler api and recommend to use)
lehre --target-file=./src/app.ts --parser=babel
$ ./lehre --help
Usage: lehre [options]
Options:
-v, --version output the version number
-t, --target-file [path] Path to target file.
-d, --target-dir [path] Path to target directory.
--stdin Force reading input from STDIN
--write Edit files in-place
--template-path [path] Custom formatter path
--ignores [path] Ignore directory names
--ignore-patterns [patterns] Ignore patterns
--parser [target] Parser (default: "ts")
--style [style] Output style(string | json) (default: "string")
--nest Enable to generate inner document(only
parser=ts available)
--scriptTarget [target] [ES3 | ES5 | ES2015 | ES2016 | ES2017 | ES2018
| ES2019 | ESNext] (default: "ESNext")
--scriptKind [kind] [JS | JSX | TS | TSX] (default: "TS")
--formatter [formatter] Document formatter(jsdoc | esdoc | tsdoc)
(default: "jsdoc")
-h, --help display help for command
You can choose document block formatter from JsDoc, ESDoc, TSDoc and your custom formatter.
cat src/app.ts | lehre --stdin
cat src/app.ts | lehre --stdin --formatter=esdoc
cat src/app.ts | lehre --stdin --formatter=tsdoc
cat src/app/ts | lehre --stdin --template-path=./examples/template.js
You can create your own cutom document block formatter.
Return string value and it insert above to signature automatically.
examples/template.js
is sample formatter.
generateClassDoc: (
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
methods: [
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
params: ParamProps[
name: string,
type: string,
default: string,
alias: string,
],
returnType: string,
],
heritageClauses: [{ type: string, value: string }],
) => string
generateInterfaceDoc: ({
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
methods: [
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
params: ParamProps[
name: string,
type: string,
default: string,
alias: string,
],
returnType: string,
],
heritageClauses: [{ type: string, value: string }],
}) => string
generatePropertyDoc: ({
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
params: ParamProps[
name: string,
type: string,
default: string,
alias: string,
],
returnType: string,
}) => string
generateFunctionDoc: ({
name: string,
type: string,
start: { line: number, charactor: number },
end: { line: number, charactor: number },
params: ParamProps[
name: string,
type: string,
default: string,
alias: string,
],
returnType: string,
}) => string
MIT