{"id":13596797,"url":"https://github.com/JoshuaKGoldberg/ts-api-utils","last_synced_at":"2025-04-09T20:31:21.818Z","repository":{"id":65710015,"uuid":"597893818","full_name":"JoshuaKGoldberg/ts-api-utils","owner":"JoshuaKGoldberg","description":"Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. 🛠️️","archived":false,"fork":false,"pushed_at":"2025-04-04T13:32:26.000Z","size":3053,"stargazers_count":97,"open_issues_count":24,"forks_count":8,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-06T23:09:28.986Z","etag":null,"topics":["abstract-syntax-trees","tsutils","typescript","typescript-api"],"latest_commit_sha":null,"homepage":"https://joshuakgoldberg.github.io/ts-api-utils","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/JoshuaKGoldberg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"JoshuaKGoldberg"}},"created_at":"2023-02-05T23:37:54.000Z","updated_at":"2025-04-03T15:49:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"cd128875-c80a-4dc9-a80c-355c79a7af4e","html_url":"https://github.com/JoshuaKGoldberg/ts-api-utils","commit_stats":{"total_commits":556,"total_committers":9,"mean_commits":61.77777777777778,"dds":0.4784172661870504,"last_synced_commit":"ccd1d48bcd830ef13c3ac021aa5dfc9a6025cb95"},"previous_names":["joshuakgoldberg/ts-api-tools"],"tags_count":34,"template":false,"template_full_name":"JoshuaKGoldberg/create-typescript-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoshuaKGoldberg%2Fts-api-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoshuaKGoldberg%2Fts-api-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoshuaKGoldberg%2Fts-api-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoshuaKGoldberg%2Fts-api-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoshuaKGoldberg","download_url":"https://codeload.github.com/JoshuaKGoldberg/ts-api-utils/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247563930,"owners_count":20958971,"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":["abstract-syntax-trees","tsutils","typescript","typescript-api"],"created_at":"2024-08-01T16:02:48.267Z","updated_at":"2025-04-09T20:31:21.803Z","avatar_url":"https://github.com/JoshuaKGoldberg.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003eTypeScript API Utils\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Utility functions for working with TypeScript's API.\n  Successor to the wonderful tsutils.\n  🛠️️\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003c!-- prettier-ignore-start --\u003e\n\t\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n\u003cimg alt=\"All Contributors: 10 👪\" src=\"https://img.shields.io/badge/all_contributors-10_👪-21bb42.svg\" /\u003e\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\t\u003c!-- prettier-ignore-end --\u003e\n\t\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/blob/main/.github/CODE_OF_CONDUCT.md\" target=\"_blank\"\u003e\u003cimg alt=\"🤝 Code of Conduct: Kept\" src=\"https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42\" /\u003e\u003c/a\u003e\n\t\u003ca href=\"https://codecov.io/gh/JoshuaKGoldberg/ts-api-utils\" target=\"_blank\"\u003e\u003cimg alt=\"🧪 Coverage\" src=\"https://img.shields.io/codecov/c/github/JoshuaKGoldberg/ts-api-utils?label=%F0%9F%A7%AA%20coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#\" target=\"_blank\"\u003e\u003cimg alt=\"📚 Documentation Coverage\" src=\"https://raw.githubusercontent.com/JoshuaKGoldberg/ts-api-utils/refs/heads/main/docs/coverage.svg\" /\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/blob/main/LICENSE.md\" target=\"_blank\"\u003e\u003cimg alt=\"📝 License: MIT\" src=\"https://img.shields.io/badge/%F0%9F%93%9D_license-MIT-21bb42.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"http://npmjs.com/package/ts-api-utils\"\u003e\u003cimg alt=\"📦 npm version\" src=\"https://img.shields.io/npm/v/ts-api-utils?color=21bb42\u0026label=%F0%9F%93%A6%20npm\" /\u003e\u003c/a\u003e\n\t\u003cimg alt=\"💪 TypeScript: Strict\" src=\"https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg\" /\u003e\n\u003c/p\u003e\n\n## Usage\n\n```shell\nnpm i ts-api-utils\n```\n\n```ts\nimport * as tsutils from \"ts-api-utils\";\n\ntsutils.forEachToken(/* ... */);\n```\n\n### API\n\n`ts-api-utils` provides many utility functions.\nCheck out our API docs for details:\n\n📝 [ts-api-utils API docs](https://joshuakgoldberg.github.io/ts-api-utils).\n\n## Development\n\nSee [`.github/CONTRIBUTING.md`](./.github/CONTRIBUTING.md).\nThanks! 💖\n\n## Contributors\n\nMany thanks to [@ajafff](https://github.com/ajafff) for creating the original [`tsutils`](https://github.com/ajafff/tsutils) ([original license: MIT](https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE)) that this project was originally based on! 🙏\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003c!-- spellchecker: disable --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://effectivetypescript.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/98301?v=4?s=100\" width=\"100px;\" alt=\"Dan Vanderkam\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDan Vanderkam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/issues?q=author%3Adanvk\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://blog.jmchor.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/110151013?v=4?s=100\" width=\"100px;\" alt=\"Johannes Chorzempa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJohannes Chorzempa\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=jmchor\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=jmchor\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.joshuakgoldberg.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3335181?v=4?s=100\" width=\"100px;\" alt=\"Josh Goldberg\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJosh Goldberg\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/issues?q=author%3AJoshuaKGoldberg\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=JoshuaKGoldberg\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=JoshuaKGoldberg\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#projectManagement-JoshuaKGoldberg\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=JoshuaKGoldberg\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#tool-JoshuaKGoldberg\" title=\"Tools\"\u003e🔧\u003c/a\u003e \u003ca href=\"#maintenance-JoshuaKGoldberg\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#infra-JoshuaKGoldberg\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#ideas-JoshuaKGoldberg\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://twitter.com/kirjs\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2545357?v=4?s=100\" width=\"100px;\" alt=\"Kirill Cherkashin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKirill Cherkashin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=kirjs\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/53019676?v=4?s=100\" width=\"100px;\" alt=\"Kirk Waiblinger\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKirk Waiblinger\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/issues?q=author%3Akirkwaiblinger\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=kirkwaiblinger\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ajafff\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11968040?v=4?s=100\" width=\"100px;\" alt=\"Klaus Meinhardt\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKlaus Meinhardt\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=ajafff\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=ajafff\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://webpro.nl\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/456426?v=4?s=100\" width=\"100px;\" alt=\"Lars Kappert\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLars Kappert\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=webpro\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/RebeccaStevens\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7224206?v=4?s=100\" width=\"100px;\" alt=\"Rebecca Stevens\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRebecca Stevens\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/issues?q=author%3ARebeccaStevens\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=RebeccaStevens\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=RebeccaStevens\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#projectManagement-RebeccaStevens\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=RebeccaStevens\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#tool-RebeccaStevens\" title=\"Tools\"\u003e🔧\u003c/a\u003e \u003ca href=\"#infra-RebeccaStevens\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-RebeccaStevens\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#ideas-RebeccaStevens\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://twitter.com/ronenamiel\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5484230?v=4?s=100\" width=\"100px;\" alt=\"Ronen Amiel\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRonen Amiel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=ronami\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.fiskercheung.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/172584?v=4?s=100\" width=\"100px;\" alt=\"fisker Cheung\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003efisker Cheung\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/JoshuaKGoldberg/ts-api-utils/commits?author=fisker\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\u003c!-- spellchecker: enable --\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003e 💙 This package was templated with [create-typescript-app](https://github.com/JoshuaKGoldberg/create-typescript-app).\n\n\u003e _\"My tools! I have to have my tools!\" - Dennis Reynolds_\n","funding_links":["https://github.com/sponsors/JoshuaKGoldberg"],"categories":["TypeScript","typescript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJoshuaKGoldberg%2Fts-api-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJoshuaKGoldberg%2Fts-api-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJoshuaKGoldberg%2Fts-api-utils/lists"}