{"id":13495706,"url":"https://github.com/nadeesha/ts-prune","last_synced_at":"2025-09-27T10:31:11.021Z","repository":{"id":34943833,"uuid":"183702632","full_name":"nadeesha/ts-prune","owner":"nadeesha","description":"Find unused exports in a typescript project. 🛀","archived":true,"fork":false,"pushed_at":"2023-12-04T14:27:46.000Z","size":1604,"stargazers_count":2027,"open_issues_count":3,"forks_count":68,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-14T07:10:44.841Z","etag":null,"topics":["typescript","utility"],"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/nadeesha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-04-26T22:46:36.000Z","updated_at":"2024-04-12T07:39:36.000Z","dependencies_parsed_at":"2023-12-08T08:06:27.073Z","dependency_job_id":"87319ad8-f8f4-4d6e-b0ed-4277e21b76f7","html_url":"https://github.com/nadeesha/ts-prune","commit_stats":{"total_commits":163,"total_committers":30,"mean_commits":5.433333333333334,"dds":0.4233128834355828,"last_synced_commit":"568132c6785ebb6ffeea5b13f2aa8196b82d72a2"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nadeesha","download_url":"https://codeload.github.com/nadeesha/ts-prune/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234426400,"owners_count":18830900,"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":["typescript","utility"],"created_at":"2024-07-31T19:01:37.354Z","updated_at":"2025-09-27T10:31:11.015Z","avatar_url":"https://github.com/nadeesha.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","目录","Packages"],"sub_categories":["TypeScript","Email"],"readme":"# ts-prune\n\n[![npm](https://img.shields.io/npm/v/ts-prune)](https://www.npmjs.com/package/ts-prune) [![npm](https://img.shields.io/npm/dm/ts-prune)](https://www.npmjs.com/package/ts-prune) [![GitHub issues](https://img.shields.io/github/issues/nadeesha/ts-prune)](https://github.com/nadeesha/ts-prune/issues)\n\n**Find potentially unused exports in your TypeScript project with zero configuration.**\n\n## 📢 Maintenance Notice\n\n\u003e **ts-prune is now in maintenance mode** - For new projects, we recommend [knip](https://github.com/webpro/knip) which carries forward the same mission with more features.\n\nts-prune will continue to receive:\n- ✅ Critical bug fixes\n- ✅ Security updates\n- ✅ Dependency maintenance\n\nWe will **not** be adding new features or accepting feature PRs. The tool remains stable and production-ready for existing users.\n\n## What is ts-prune?\n\nts-prune is a simple, fast tool that finds exported TypeScript/JavaScript code that isn't being used anywhere in your project. It helps you:\n\n- 🧹 **Clean up dead code** - Remove exports that serve no purpose\n- 📦 **Reduce bundle size** - Eliminate unused code from your builds  \n- 🔍 **Improve code quality** - Keep your codebase lean and maintainable\n- ⚡ **Zero configuration** - Works out of the box with any TypeScript project\n\n## Quick Start\n\n### Installation\n\n```bash\n# npm\nnpm install --save-dev ts-prune\n\n# yarn  \nyarn add --dev ts-prune\n\n# pnpm\npnpm add --save-dev ts-prune\n```\n\n### Basic Usage\n\n```bash\n# Run in your project root\nnpx ts-prune\n```\n\n**Example output:**\n```\nsrc/components/Button.ts:15 - ButtonVariant\nsrc/utils/helpers.ts:8 - formatCurrency  \nsrc/types/user.ts:12 - UserRole\nsrc/api/client.ts:45 - ApiResponse\n```\n\nEach line shows: `file:line - exportName`\n\n## Examples\n\n### Example 1: Finding Unused Exports\n\nGiven these files:\n\n```typescript\n// src/utils/math.ts\nexport const add = (a: number, b: number) =\u003e a + b;\nexport const subtract = (a: number, b: number) =\u003e a - b;  // unused\nexport const multiply = (a: number, b: number) =\u003e a * b;  // unused\n\n// src/app.ts  \nimport { add } from './utils/math';\nconsole.log(add(2, 3));\n```\n\nRunning `ts-prune` outputs:\n```\nsrc/utils/math.ts:2 - subtract\nsrc/utils/math.ts:3 - multiply\n```\n\n### Example 2: Ignoring Specific Exports\n\nUse `// ts-prune-ignore-next` to ignore specific exports:\n\n```typescript\n// src/api/types.ts\nexport interface User {\n  id: string;\n  name: string;\n}\n\n// ts-prune-ignore-next\nexport interface AdminUser extends User {  // ignored by ts-prune\n  permissions: string[];\n}\n\nexport interface Customer {  // will be flagged if unused\n  customerId: string;\n}\n```\n\n### Example 3: Working with Different File Types\n\nts-prune works with various TypeScript patterns:\n\n```typescript\n// Default exports\nexport default class MyClass {}\n\n// Named exports  \nexport const myFunction = () =\u003e {};\nexport type MyType = string;\nexport interface MyInterface {}\n\n// Re-exports\nexport { SomethingElse } from './other-file';\nexport * from './barrel-file';\n```\n\n## Configuration\n\n### CLI Options\n\n```bash\nts-prune [options]\n```\n\n| Option | Description | Example |\n|--------|-------------|---------|\n| `-p, --project` | Path to tsconfig.json | `ts-prune -p tsconfig.build.json` |\n| `-i, --ignore` | Ignore pattern (RegExp) | `ts-prune -i \"test\\|spec\"` |\n| `-s, --skip` | Skip files pattern | `ts-prune -s \"\\.test\\.ts$\"` |\n| `-e, --error` | Exit with error code if unused exports found | `ts-prune -e` |\n| `-u, --unusedInModule` | Skip exports marked as \"used in module\" | `ts-prune -u` |\n\n### Configuration File\n\nCreate `.ts-prunerc` (JSON), `.ts-prunerc.js`, or add to `package.json`:\n\n```json\n{\n  \"ignore\": \"components/(Button|Input)\",\n  \"skip\": \"\\\\.test\\\\.|test/\",\n  \"project\": \"tsconfig.build.json\"\n}\n```\n\n## Common Use Cases\n\n### 1. CI/CD Integration\n\nAdd to your package.json:\n```json\n{\n  \"scripts\": {\n    \"deadcode\": \"ts-prune\",\n    \"deadcode:ci\": \"ts-prune --error\"\n  }\n}\n```\n\n### 2. Pre-commit Hook\n\n```json\n{\n  \"husky\": {\n    \"hooks\": {\n      \"pre-commit\": \"ts-prune --error\"\n    }\n  }\n}\n```\n\n### 3. Count Unused Exports\n\n```bash\nts-prune | wc -l\n```\n\n### 4. Filter Results\n\n```bash\n# Ignore test files\nts-prune | grep -v \"\\.test\\.\"\n\n# Only show specific directories  \nts-prune | grep \"src/components\"\n\n# Ignore multiple patterns\nts-prune | grep -v -E \"(test|spec|stories)\"\n```\n\n## Understanding the Output\n\nts-prune categorizes exports into different types:\n\n- **Regular unused export**: `src/file.ts:10 - exportName`\n- **Used in module**: `src/file.ts:5 - localHelper (used in module)` \n  - Export is only used within the same file\n  - Use `-u` flag to ignore these\n\n## Limitations\n\n- **Dynamic imports**: `import('./dynamic-file')` usage might not be detected\n- **String-based imports**: `require('module-name')` patterns\n- **Framework magic**: Some frameworks use exports through reflection\n- **Configuration files**: Exports in config files might appear unused\n\nFor these cases, use `// ts-prune-ignore-next` or configure ignore patterns.\n\n## FAQ\n\n### How accurate is ts-prune?\n\nts-prune is conservative and may show false positives for:\n- Dynamically imported modules\n- Framework-specific patterns (Angular services, React lazy loading)\n- Build tool configurations\n\n### Can I use this with JavaScript?\n\nYes! ts-prune works with `.js` files in TypeScript projects. Ensure your `tsconfig.json` includes JavaScript files:\n\n```json\n{\n  \"compilerOptions\": {\n    \"allowJs\": true\n  }\n}\n```\n\n## Acknowledgements\n\nBuilt with the excellent [ts-morph](https://github.com/dsherret/ts-morph) library and inspired by [this approach](https://gist.github.com/dsherret/0bae87310ce24866ae22425af80a9864) by [@dsherret](https://github.com/dsherret).\n\n## Contributors\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/nadeesha\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2942312?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Nadeesha Cabral/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eNadeesha Cabral\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/snyk-bot\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/19733683?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Snyk bot/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eSnyk bot\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/danvk\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/98301?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Dan Vanderkam/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDan Vanderkam\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/JoshuaKGoldberg\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/3335181?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Josh Goldberg ✨/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eJosh Goldberg ✨\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/vitalyiegorov\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/586558?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Vitaly Iegorov/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eVitaly Iegorov\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/SimonJang\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/10977475?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Simon Jang/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eSimon Jang\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/gitter-badger\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/8518239?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=The Gitter Badger/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eThe Gitter Badger\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/timbodeit\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/4222754?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Tim Bodeit/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTim Bodeit\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/sauntimo\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2720466?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Tim Saunders/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTim Saunders\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/torkelrogstad\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/16610775?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Torkel Rogstad/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTorkel Rogstad\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/felladrin\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/418083?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Victor Nogueira/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eVictor Nogueira\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/wcandillon\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/306134?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=William Candillon/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eWilliam Candillon\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/curtvict\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/96080054?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=curtvict/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003ecurtvict\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/phiresky\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2303841?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=phiresky/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003ephiresky\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/rubengmurray\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/31162373?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Reece Daniels/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eReece Daniels\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/mqqza\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/9381249?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Mikhail Belyaev/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eMikhail Belyaev\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/jtbandes\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/14237?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Jacob Bandes-Storch/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eJacob Bandes-Storch\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/ivosh\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/1327828?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Ivo Raisr/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eIvo Raisr\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/hduprat\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/3397791?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Hugo Duprat/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eHugo Duprat\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/daviseford\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/9663863?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Davis Ford/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDavis Ford\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/dgraham\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/122102?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=David Graham/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDavid Graham\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/calebpeterson\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/18555288?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Caleb Peterson/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eCaleb Peterson\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/ashokdelphia\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/48444234?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Ashok Argent-Katwala/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAshok Argent-Katwala\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/amir-arad\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/6019373?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Amir Arad/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAmir Arad\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnadeesha%2Fts-prune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnadeesha%2Fts-prune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnadeesha%2Fts-prune/lists"}