Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heavenshell/ts-lehre
Generate document block(JsDoc, EsDoc, TsDoc) from source code
https://github.com/heavenshell/ts-lehre
esco esdoc generator jsdoc tsdoc typescript
Last synced: about 4 hours ago
JSON representation
Generate document block(JsDoc, EsDoc, TsDoc) from source code
- Host: GitHub
- URL: https://github.com/heavenshell/ts-lehre
- Owner: heavenshell
- License: mit
- Created: 2020-03-22T15:03:05.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-23T16:31:20.000Z (27 days ago)
- Last Synced: 2024-10-25T12:16:33.310Z (25 days ago)
- Topics: esco, esdoc, generator, jsdoc, tsdoc, typescript
- Language: TypeScript
- Homepage:
- Size: 1.34 MB
- Stars: 16
- Watchers: 3
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lehre
![build](https://github.com/heavenshell/ts-lehre/workflows/build/badge.svg)
Lehre is document block generator.
Generate JsDoc style document from source code.
## Install
```console
yarn add -D lehre
```## Usage
```console
cat src/app.ts | lehre --stdin
```Specify directory and ignore patterns.
```console
lehre --target-dir=./src --ignore-patterns="spec.ts"
```Specify file.
```console
lehre --target-file=./src/app.ts
```Use babel parser(default parser is TypeScript compiler api and recommend to use)
```console
lehre --target-file=./src/app.ts --parser=babel
``````console
$ ./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
```## Formatters
You can choose document block formatter from [JsDoc](https://jsdoc.app/), [ESDoc](https://github.com/esdoc/esdoc), [TSDoc](https://github.com/microsoft/tsdoc) and your custom formatter.
### JsDoc(default)
```console
cat src/app.ts | lehre --stdin
```### EsDoc
```console
cat src/app.ts | lehre --stdin --formatter=esdoc
```### TsDoc
```console
cat src/app.ts | lehre --stdin --formatter=tsdoc
```### Coustom formatter
```console
cat src/app/ts | lehre --stdin --template-path=./examples/template.js
```## Custom formatter
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.
### Formatter api
#### generateClassDoc
```typescript
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
```typescript
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
```typescript
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
```typescript
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
```## LICENSE
MIT