{"id":29593158,"url":"https://github.com/runespoor-engineering/ts-lib-template","last_synced_at":"2026-05-14T22:47:34.624Z","repository":{"id":303814580,"uuid":"1016611484","full_name":"runespoor-engineering/ts-lib-template","owner":"runespoor-engineering","description":"A modern TypeScript library template with production-ready tooling and best practices.","archived":false,"fork":false,"pushed_at":"2025-07-09T14:26:33.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-09T15:40:06.974Z","etag":null,"topics":["biomejs","library","package","template","tsup","typescript","vitest"],"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/runespoor-engineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"borisshulyak","custom":null}},"created_at":"2025-07-09T09:09:34.000Z","updated_at":"2025-07-09T14:26:36.000Z","dependencies_parsed_at":"2025-07-09T15:43:36.746Z","dependency_job_id":"7b416690-ce08-499c-b490-53d831d57504","html_url":"https://github.com/runespoor-engineering/ts-lib-template","commit_stats":null,"previous_names":["runespoor-engineering/ts-lib-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/runespoor-engineering/ts-lib-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runespoor-engineering%2Fts-lib-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runespoor-engineering%2Fts-lib-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runespoor-engineering%2Fts-lib-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runespoor-engineering%2Fts-lib-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runespoor-engineering","download_url":"https://codeload.github.com/runespoor-engineering/ts-lib-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runespoor-engineering%2Fts-lib-template/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266076926,"owners_count":23872843,"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":["biomejs","library","package","template","tsup","typescript","vitest"],"created_at":"2025-07-20T06:35:27.803Z","updated_at":"2025-10-24T09:50:50.906Z","avatar_url":"https://github.com/runespoor-engineering.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/borisshulyak","https://www.buymeacoffee.com/borisshulyak"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e@runespoorstack/{lib-name}\u003c/h1\u003e\n  \u003cp\u003eA modern TypeScript library template with production-ready tooling and best practices.\u003c/p\u003e\n  \u003cdiv\u003e\n     \u003ca href=\"https://www.buymeacoffee.com/borisshulyak\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n  \u003ca href=\"https://github.com/runespoor-engineering/{repo-name}/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/runespoor-engineering/{repo-name}\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/runespoor-engineering/{repo-name}/issues\"\u003e\n    \u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/runespoor-engineering/{repo-name}?color=5d2de0\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@runespoorstack/{lib-name}\"\u003e\n    \u003cimg alt=\"npm downloads\" src=\"https://img.shields.io/npm/dw/@runespoorstack/{lib-name}\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## 🚀 TS Library Template\n\nThis is a comprehensive **TypeScript library template** designed to jumpstart your npm package development with modern tooling, best practices, and production-ready configurations.\n\n## ✨ Features\n\n### 🔧 **Modern Build System**\n\n- **TypeScript** - Full TypeScript support with strict mode and ESNext target\n- **tsup** - Fast bundler with CommonJS and ESM output formats\n- **Declaration files** - Automatic `.d.ts` generation for TypeScript consumers\n\n### 🧪 **Testing \u0026 Quality**\n\n- **Vitest** - Lightning-fast unit testing with coverage reporting\n- **Biome** - Ultra-fast linting, formatting, and import organization\n- **Coverage reporting** - V8 provider with HTML, LCOV, and JSON outputs\n- **Codecov integration** - Automated coverage tracking and reporting\n\n### 🔄 **Development Workflow**\n\n- **Husky** - Git hooks for code quality enforcement\n- **lint-staged** - Run linters on staged files only\n- **GitHub Actions** - Complete CI/CD workflows for testing and publishing\n- **Changelog management** - Automated changelog generation with Runespoor tools\n\n### 📦 **Package Management**\n\n- **pnpm** - Fast, disk space efficient package manager\n- **Node.js 20+** - Modern Node.js runtime support\n- **ESM/CJS dual exports** - Support for both module systems\n\n## 🏁 Quick Start\n\n### 1. **Use this template**\n\nClick \"Use this template\" button or clone this repository:\n\n```bash\ngit clone https://github.com/runespoor-engineering/ts-lib-template.git my-awesome-lib\ncd my-awesome-lib\n```\n\n### 2. **Replace placeholders**\n\nReplace the following placeholders throughout the project:\n\n- `{lib-name}` - Your library name (e.g., `my-awesome-lib`)\n- `{repo-name}` - Your repository name (e.g., `my-awesome-lib`)\n\n**Files to update:**\n\n- `package.json` - Package name, repository URLs\n- `README.md` - Title, badges, and links\n- `SECURITY.md` - Security policy references\n- `CONTRIBUTING.md` - Clone command\n- `.github/workflows/reusable-test.yml` - Codecov slug\n\n### 3. **Install dependencies**\n\n```bash\npnpm install\n```\n\n### 4. **Create your library**\n\nCreate a `src` directory and start building your library:\n\n```bash\nmkdir src\necho \"export const hello = () =\u003e 'Hello, World!';\" \u003e src/index.ts\n```\n\n### 5. **Start developing**\n\n```bash\n# Run tests\npnpm test\n\n# Build your library\npnpm build\n\n# Lint and format\npnpm lint:fix\npnpm format:fix\n```\n\n## 📁 Project Structure\n\n```\nyour-library/\n├── src/                     # Your library source code\n├── dist/                    # Built output (auto-generated)\n├── .github/                 # GitHub workflows and templates\n│   ├── workflows/           # CI/CD workflows\n│   └── ISSUE_TEMPLATE/      # Issue templates\n├── .husky/                  # Git hooks\n├── package.json             # Package configuration\n├── tsconfig.json            # TypeScript configuration\n├── tsup.config.ts           # Build configuration\n├── vitest.config.mjs        # Test configuration\n├── biome.json               # Linting and formatting config\n└── Documentation files      # README, CONTRIBUTING, etc.\n```\n\n## 🛠️ Available Scripts\n\n| Script                  | Description                      |\n| ----------------------- | -------------------------------- |\n| `pnpm build`            | Build the library for production |\n| `pnpm test`             | Run all tests                    |\n| `pnpm test --ui`        | Run tests with UI                |\n| `pnpm lint`             | Check code for linting issues    |\n| `pnpm lint:fix`         | Fix linting issues automatically |\n| `pnpm format`           | Check code formatting            |\n| `pnpm format:fix`       | Fix formatting issues            |\n| `pnpm changelog:change` | Add a new changelog entry        |\n| `pnpm unimported`       | Find unused dependencies         |\n\n## 🔧 Configuration\n\n### **TypeScript**\n\n- Strict mode enabled\n- ESNext target and module\n- Declaration files generated\n- Source maps included\n\n### **Build Output**\n\n- CommonJS (`dist/index.js`)\n- ES Modules (`dist/index.mjs`)\n- TypeScript declarations (`dist/index.d.ts`)\n- Minified for production\n\n### **Testing**\n\n- Global test environment\n- Node.js environment\n- Coverage thresholds configured\n- HTML and LCOV reports\n\n## 🚀 Publishing\n\nThe template includes automated publishing workflows:\n\n1. **Manual publish** - Trigger releases manually\n2. **Version management** - Automated version bumping\n3. **NPM publishing** - Secure token-based publishing\n4. **GitHub releases** - Automatic release notes\n\n## 🏗️ What's Included\n\n- ✅ TypeScript configuration\n- ✅ Modern build system (tsup)\n- ✅ Testing framework (Vitest)\n- ✅ Code quality tools (Biome)\n- ✅ Git hooks (Husky + lint-staged)\n- ✅ GitHub Actions workflows\n- ✅ Code coverage reporting\n- ✅ Dependency management\n- ✅ Security policies\n- ✅ Contributing guidelines\n- ✅ Issue templates\n- ✅ Funding configuration\n\n## 🛠️ Contributing\n\nSee the [CONTRIBUTING.md](https://github.com/runespoor-engineering/runespoorstack/blob/main/CONTRIBUTING.md) document.\n\n## 💕 Special Thanks\n\n- I want to say thank you to the best woman in the world, **my wife Diana** for her love, daily support, motivation and inspiration.\n\n## ❤️ Support or Donate\n\nIf you are enjoying this work and feel extra appreciative, you could [buy me a book](https://bmc.link/borisshulyak)\n📖 or 3 📖📖📖.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunespoor-engineering%2Fts-lib-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frunespoor-engineering%2Fts-lib-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frunespoor-engineering%2Fts-lib-template/lists"}