{"id":22892482,"url":"https://github.com/s-panferov/tygen","last_synced_at":"2025-09-12T07:40:32.869Z","repository":{"id":34041347,"uuid":"37811591","full_name":"s-panferov/tygen","owner":"s-panferov","description":"Modern documentation generator for TypeScript built with ReactJS","archived":false,"fork":false,"pushed_at":"2018-11-08T05:44:23.000Z","size":1920,"stargazers_count":24,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-19T18:00:07.126Z","etag":null,"topics":["documentation","documentation-generator","documentation-tool","reactjs","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/s-panferov.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}},"created_at":"2015-06-21T14:20:52.000Z","updated_at":"2023-04-29T16:40:58.000Z","dependencies_parsed_at":"2022-07-14T01:50:34.273Z","dependency_job_id":null,"html_url":"https://github.com/s-panferov/tygen","commit_stats":null,"previous_names":["docscript/docscript"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/s-panferov/tygen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Ftygen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Ftygen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Ftygen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Ftygen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-panferov","download_url":"https://codeload.github.com/s-panferov/tygen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-panferov%2Ftygen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274777504,"owners_count":25347647,"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","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["documentation","documentation-generator","documentation-tool","reactjs","typescript"],"created_at":"2024-12-13T23:00:10.450Z","updated_at":"2025-09-12T07:40:32.846Z","avatar_url":"https://github.com/s-panferov.png","language":"TypeScript","funding_links":["https://www.patreon.com/spanferov"],"categories":[],"sub_categories":[],"readme":"# TyGen — TypeScript documentation generator\n\n[![Gitter](https://badges.gitter.im/s-panferov/tygen.svg)](https://gitter.im/s-panferov/tygen?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n[![Build Status](https://travis-ci.org/s-panferov/tygen.svg?branch=master)](https://travis-ci.org/s-panferov/tygen)\n\nThis project aims to create a full-featured modern TypeScript documentation generator with support of all the latest TypeScript features. It can build an interlinked representation of all project files, so every symbol of your program (and your dependencies) is inspectable, even those dependencies in `@types/*` packages.\n\nBig goals:\n\n1.  Full-featured static/dynamic TypeScript documentation generator.\n2.  Special support for ReactJS/Angular/Vue projects.\n3.  All-in-one documentation portal: [tsdoc.io](https://tsdoc.io)\n\n## Donation request\n\nThis project has very ambitious goals, but demands a lot of attention and hard work to make things right. I need to invest tons of my free time and right now this project is supported solely by my enthusiasm.\n\nWe all know that maintaining an open source project is a HARD work. Enthusiasm burns out and does not last forever (especially after you get your first 100 bug reports without a proper description and reproduction steps), but money can motivate you for years. And this is why I ask you to consider a donation if you're interested me to continue this work.\n\n\u003cspan class=\"badge-patreon\"\u003e\u003ca href=\"https://www.patreon.com/spanferov\" title=\"Donate to this project using Patreon\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\n## Example output\n\nJust visit [tsdoc.io](http://tsdoc.io) and search for a package you're interested in.\n\n## Work in progress\n\nThis project is an active development phase, so please expect it to change rapidly and break often.\n\n## Install\n\nYou can use `npm` or `yarn` to install `tygen`. This project consists of several different packages with different purposes:\n\n-   Package `@tygen/reflector` contains code to reflect TypeScript internal program representation into a set of JSON reflections.\n-   Package `@tygen/html` helps to pre-render JSON reflections into a static HTML or serve them as a web-server. This package written as a modern frontend application in ReactJS and server-side rendering.\n\n```\nyarn add --dev @tygen/reflector @tygen/html\n```\n\n## Use\n\n`tygen` has several binaries to help you to generate/serve reflections and a documentation.\n\nIf you want all-in-one command to generate ready-to-serve static HTML documentation:\n\n```\nyarn exec -- tygen generate --project=. --out=docs --with=@tygen/html\n```\n\nFirst argument of the `tygen --project \u003csource\u003e` command should point to a folder with a `tsconfig.json` file. `tygen` will compile your project with TypeScript compiler and then generate reflections and HTML files.\n\nPlease take note:\n\n1.  `tygen` can generate documentation only for well-typed projects (with no compilation errors).\n2.  HTML compilation can take some time, `tygen` is not optimized for performance yet.\n\nResult documentation can be served as static files with any capable web server or opened as `file://` resource in your browser.\n\n## What is supported\n\nTypeScript \u003e 3.0 is supported. I _cannot_ guarantee backward compatibility at this stage, so expect this project to support only several most recent TypeScript versions.\n\n## How to contribute\n\nRight now the best way to contribute is to:\n\n1.  Help to provide better and more comprehensive reflections in `@tygen/reflector` package.\n\n2.  Propose a better UX/design, because current one is very basic.\n\n3.  Help to deal with potential crashes.\n\n4.  Help to write tests. This may potentially help to become backward-compatible in the future. This projects _does not_ have tests yet. This is an informed decision, I want to concentrate on functionality first.\n\n# How to build\n\nTo run this stuff in development mode:\n\n1. Run `yarn install`\n1. Open _3_ different terminal tabs:\n   1.1 Run `yarn exec server-watch`\n   1.1 Run `yarn exec client-watch`\n   1.1 Run `yarn exec tsc -- -b --watch`\n1. Generate example reflections by running:\n\n```\nnode ./packages/tygen-reflector/lib/cli.js reflect --project=examples/simple --out=docs --write-inventory\n```\n\nMy vscode debugging configuration:\n\n```json\n{\n\t\"name\": \"Reflect example\",\n\t\"type\": \"node\",\n\t\"request\": \"launch\",\n\t\"runtimeExecutable\": \"${workspaceRoot}/roarr.sh\",\n\t\"program\": \"${workspaceRoot}/packages/tygen-reflector/lib/cli.js\",\n\t\"args\": [\n\t\t\"reflect\",\n\t\t\"--project\",\n\t\t\"examples/simple\",\n\t\t\"--out\",\n\t\t\"docs\",\n\t\t\"--include-external\",\n\t\t\"--include-libs\",\n\t\t\"--enable-search\",\n\t\t\"--write-inventory\"\n\t],\n\t\"cwd\": \"${workspaceRoot}/\",\n\t\"runtimeArgs\": [\"--nolazy\", \"--stack_size=90000\"],\n\t\"sourceMaps\": true,\n\t\"protocol\": \"inspector\",\n\t\"stopOnEntry\": false,\n\t\"outputCapture\": \"std\",\n\t\"env\": {\n\t\t\"NODE_ENV\": \"development\",\n\t\t\"ROARR_LOG\": \"true\"\n\t}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-panferov%2Ftygen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-panferov%2Ftygen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-panferov%2Ftygen/lists"}