{"id":18898591,"url":"https://github.com/dorayx/template-typescript-library","last_synced_at":"2026-04-05T23:02:12.716Z","repository":{"id":192294541,"uuid":"686424417","full_name":"dorayx/template-typescript-library","owner":"dorayx","description":"(opinionated) TypeScript Library Boilerplate","archived":false,"fork":false,"pushed_at":"2023-09-03T02:36:11.000Z","size":867,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-24T08:41:07.604Z","etag":null,"topics":["boilerplate","commitlint","eslint","github-action","husky","lint-staged","plop","prettier","semantic-release","template","ts-patch","typescript","typescript-library","typescript-transform-paths","vite","vitest","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/dorayx.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":"2023-09-02T18:41:44.000Z","updated_at":"2023-09-02T19:21:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"1f9d5dd3-420b-418a-b905-b68ab05c1f9c","html_url":"https://github.com/dorayx/template-typescript-library","commit_stats":null,"previous_names":["dorayx/template-typescript-library"],"tags_count":0,"template":false,"template_full_name":"dorayx/template-typescript-app","purl":"pkg:github/dorayx/template-typescript-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorayx%2Ftemplate-typescript-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorayx%2Ftemplate-typescript-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorayx%2Ftemplate-typescript-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorayx%2Ftemplate-typescript-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dorayx","download_url":"https://codeload.github.com/dorayx/template-typescript-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorayx%2Ftemplate-typescript-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31452901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["boilerplate","commitlint","eslint","github-action","husky","lint-staged","plop","prettier","semantic-release","template","ts-patch","typescript","typescript-library","typescript-transform-paths","vite","vitest","yarn"],"created_at":"2024-11-08T08:43:14.454Z","updated_at":"2026-04-05T23:02:12.700Z","avatar_url":"https://github.com/dorayx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# _opinionated_ TypeScript Library Template\n\nThis template is opinionated, and it is not meant to be a one-size-fits-all solution.\nIt is meant to be a starting point for my personal projects to bootstrap development, as I like to create minimal viable products from time to time.\n\n## User Cases\n\n- ❌ TypeScript Application _(use [dorayx/template-typescript-app](https://github.com/dorayx/template-typescript-app) instead)_\n- ✅ TypeScript Library\n- ❌ UI Component Library\n\n## Features\n\n- ✅ TypeScript v5\n- ✅ Vite + Vitest\n- ✅ Linters\n- ✅ Code Generator\n- ✅ Semantic Release\n- ✅ GitHub Actions\n- ❌ Monorepo\n\n## Tooling\n\nThis template is configured with the following tools:\n\n**Compiler \u0026 Bundler**\n\n- [TypeScript](https://www.typescriptlang.org/) _(v5)_\n- [ts-patch](https://github.com/nonara/ts-patch): Patch typescript to allow custom transformers (plugins) during build\n  - [typescript-transform-paths](https://github.com/LeDDGroup/typescript-transform-paths): Transform compiled source module resolution paths using TypeScript's paths config\n\n**Package Manager**\n\n- [Yarn](https://yarnpkg.com/) _(v3)_\n  - Doc: [Zero-installs](https://yarnpkg.com/features/caching#zero-installs)\n\n**Testing**\n\n- [Vite](https://vitejs.dev/) _(v4)_\n  - Plugin: [vite-tsconfig-paths](https://www.npmjs.com/package/vite-tsconfig-paths)\n- [Vitest](https://vitest.dev/)\n  - Convention: Unit tests for user cases are stored in the `tests/units` directory\n  - Convention: Unit tests for individual functions are placed in `*.test.ts` files alongside their respective source files\n  - Convention: The file `tests/setup.ts` is executed before each test file\n  - Convention: The `tests/tsconfig.json` file configures TypeScript for testing\n- GitHub Action: `.github/workflows/test.yml`\n\n**Linters**\n\n- [ESLint](https://eslint.org/)\n- [Prettier](https://prettier.io/)\n- [Commitlint](https://commitlint.js.org/#/)\n- [Husky](https://typicode.github.io/husky/#/)\n- [LintStaged](https://github.com/okonet/lint-staged)\n\n**Code Generator**\n\n- [Plop](https://plopjs.com/): A micro-generator framework that makes it easy for an entire team to create files with a level of uniformity\n\n**Publish**\n\n- [semantic-release](https://semantic-release.gitbook.io/): Fully automated version management and package publishing\n  - GitHub Action: `.github/workflows/release-package.yml`\n  - Env Variables: `NPM_TOKEN` is required to publish a package to the npm registry\n  - Additional Plugin: [semantic-release-yarn](https://github.com/hongaar/semantic-release-yarn)\n  - Additional Plugin: [@semantic-release/changelog](https://github.com/semantic-release/changelog)\n\n## Development Conventions\n\n### Branches\n\n- `main`: Used for stable features \u0026 production releases\n- `dev`: Used for features under development\n- `next`: Used for experimental features\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdorayx%2Ftemplate-typescript-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdorayx%2Ftemplate-typescript-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdorayx%2Ftemplate-typescript-library/lists"}