{"id":21013411,"url":"https://github.com/heavenshell/ts-lehre","last_synced_at":"2025-05-15T04:34:17.294Z","repository":{"id":36991210,"uuid":"249207797","full_name":"heavenshell/ts-lehre","owner":"heavenshell","description":"Generate document block(JsDoc, EsDoc, TsDoc) from source code","archived":false,"fork":false,"pushed_at":"2024-10-23T16:31:20.000Z","size":1403,"stargazers_count":16,"open_issues_count":11,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-25T12:16:33.310Z","etag":null,"topics":["esco","esdoc","generator","jsdoc","tsdoc","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heavenshell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-22T15:03:05.000Z","updated_at":"2024-09-26T13:18:17.000Z","dependencies_parsed_at":"2024-05-21T00:34:21.253Z","dependency_job_id":"1adc9eff-f2ab-4940-9875-796feeaa29c1","html_url":"https://github.com/heavenshell/ts-lehre","commit_stats":{"total_commits":373,"total_committers":5,"mean_commits":74.6,"dds":"0.43163538873994634","last_synced_commit":"b38adc036866841091f5d4c6dac7f9bbd619f7d2"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heavenshell%2Fts-lehre","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heavenshell%2Fts-lehre/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heavenshell%2Fts-lehre/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heavenshell%2Fts-lehre/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heavenshell","download_url":"https://codeload.github.com/heavenshell/ts-lehre/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225328907,"owners_count":17457324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esco","esdoc","generator","jsdoc","tsdoc","typescript"],"created_at":"2024-11-19T09:42:18.581Z","updated_at":"2024-11-19T09:42:19.244Z","avatar_url":"https://github.com/heavenshell.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lehre\n\n![build](https://github.com/heavenshell/ts-lehre/workflows/build/badge.svg)\n\nLehre is document block generator.\n\nGenerate JsDoc style document from source code.\n\n## Install\n\n```console\nyarn add -D lehre\n```\n\n## Usage\n\n```console\ncat src/app.ts | lehre --stdin\n```\n\nSpecify directory and ignore patterns.\n\n```console\nlehre --target-dir=./src --ignore-patterns=\"spec.ts\"\n```\n\nSpecify file.\n\n```console\nlehre --target-file=./src/app.ts\n```\n\nUse babel parser(default parser is TypeScript compiler api and recommend to use)\n\n```console\nlehre --target-file=./src/app.ts --parser=babel\n```\n\n```console\n$ ./lehre --help\nUsage: lehre [options]\n\nOptions:\n  -v, --version                 output the version number\n  -t, --target-file [path]      Path to target file.\n  -d, --target-dir [path]       Path to target directory.\n  --stdin                       Force reading input from STDIN\n  --write                       Edit files in-place\n  --template-path [path]        Custom formatter path\n  --ignores [path]              Ignore directory names\n  --ignore-patterns [patterns]  Ignore patterns\n  --parser [target]             Parser (default: \"ts\")\n  --style [style]               Output style(string | json) (default: \"string\")\n  --nest                        Enable to generate inner document(only\n                                parser=ts available)\n  --scriptTarget [target]       [ES3 | ES5 | ES2015 | ES2016 | ES2017 | ES2018\n                                | ES2019 | ESNext] (default: \"ESNext\")\n  --scriptKind [kind]           [JS | JSX | TS | TSX] (default: \"TS\")\n  --formatter [formatter]       Document formatter(jsdoc | esdoc | tsdoc)\n                                (default: \"jsdoc\")\n  -h, --help                    display help for command\n```\n\n## Formatters\n\nYou 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.\n\n### JsDoc(default)\n\n```console\ncat src/app.ts | lehre --stdin\n```\n\n### EsDoc\n\n```console\ncat src/app.ts | lehre --stdin --formatter=esdoc\n```\n\n### TsDoc\n\n```console\ncat src/app.ts | lehre --stdin --formatter=tsdoc\n```\n\n### Coustom formatter\n\n```console\ncat src/app/ts | lehre --stdin --template-path=./examples/template.js\n```\n\n## Custom formatter\n\nYou can create your own cutom document block formatter.\n\nReturn string value and it insert above to signature automatically.\n\n`examples/template.js` is sample formatter.\n\n### Formatter api\n\n#### generateClassDoc\n\n```typescript\ngenerateClassDoc: (\n  name: string,\n  type: string,\n  start: { line: number, charactor: number },\n  end: { line: number, charactor: number },\n  methods: [\n    name: string,\n    type: string,\n    start: { line: number, charactor: number },\n    end: { line: number, charactor: number },\n    params: ParamProps[\n      name: string,\n      type: string,\n      default: string,\n      alias: string,\n    ],\n    returnType: string,\n  ],\n  heritageClauses: [{ type: string, value: string }],\n) =\u003e string\n```\n\n#### generateInterfaceDoc\n\n```typescript\ngenerateInterfaceDoc: ({\n  name: string,\n  type: string,\n  start: { line: number, charactor: number },\n  end: { line: number, charactor: number },\n  methods: [\n    name: string,\n    type: string,\n    start: { line: number, charactor: number },\n    end: { line: number, charactor: number },\n    params: ParamProps[\n      name: string,\n      type: string,\n      default: string,\n      alias: string,\n    ],\n    returnType: string,\n  ],\n  heritageClauses: [{ type: string, value: string }],\n}) =\u003e string\n```\n\n#### generatePropertyDoc\n\n```typescript\ngeneratePropertyDoc: ({\n  name: string,\n  type: string,\n  start: { line: number, charactor: number },\n  end: { line: number, charactor: number },\n  params: ParamProps[\n    name: string,\n    type: string,\n    default: string,\n    alias: string,\n  ],\n  returnType: string,\n}) =\u003e string\n```\n\n#### generateFunctionDoc\n\n```typescript\ngenerateFunctionDoc: ({\n  name: string,\n  type: string,\n  start: { line: number, charactor: number },\n  end: { line: number, charactor: number },\n  params: ParamProps[\n    name: string,\n    type: string,\n    default: string,\n    alias: string,\n  ],\n  returnType: string,\n}) =\u003e string\n```\n\n## LICENSE\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheavenshell%2Fts-lehre","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheavenshell%2Fts-lehre","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheavenshell%2Fts-lehre/lists"}