{"id":21149029,"url":"https://github.com/jedrzejginter/ts-resolve-type","last_synced_at":"2025-03-14T14:14:30.276Z","repository":{"id":209832442,"uuid":"725020329","full_name":"jedrzejginter/ts-resolve-type","owner":"jedrzejginter","description":"🖌️ Get fully resolved TypeScript type as code","archived":false,"fork":false,"pushed_at":"2023-11-29T19:15:22.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T15:45:16.800Z","etag":null,"topics":["types","typescript","typescript-compiler-api"],"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/jedrzejginter.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-11-29T09:20:09.000Z","updated_at":"2023-11-29T19:30:02.000Z","dependencies_parsed_at":"2023-11-29T11:44:12.117Z","dependency_job_id":"bcf08485-bcc0-4ffd-89e2-726f9485123a","html_url":"https://github.com/jedrzejginter/ts-resolve-type","commit_stats":{"total_commits":10,"total_committers":3,"mean_commits":"3.3333333333333335","dds":0.5,"last_synced_commit":"1549c377ac34db4a4f8e405d10081c86a37d0859"},"previous_names":["jedrzejginter/ts-resolve-type"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrzejginter%2Fts-resolve-type","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrzejginter%2Fts-resolve-type/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrzejginter%2Fts-resolve-type/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrzejginter%2Fts-resolve-type/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedrzejginter","download_url":"https://codeload.github.com/jedrzejginter/ts-resolve-type/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243589331,"owners_count":20315471,"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":["types","typescript","typescript-compiler-api"],"created_at":"2024-11-20T09:30:37.838Z","updated_at":"2025-03-14T14:14:30.238Z","avatar_url":"https://github.com/jedrzejginter.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ts-resolve-type\n\n## Requirements\n\n- Node 16 or higher\n- TypeScript 5 or higher\n  - `strict: true` in `tsconfig.json`\n\n## Known limitations\n\n- The type has to be `export`'ed\n  - Most probably it's because TypeScript checker ignores types that are not used (??)\n- Does not resolve `enum`\n- Does not preserve function argument names\n  - Prints `args_0`, `args_1` etc instead of original function arguments names\n\n## Installation\n\n```console\nnpm i -D ts-resolve-type typescript\n```\n\n## Usage\n\n```ts\n// src/index.ts\ntype Keys = 1 | 2 | 3;\n\nexport type InputType = {\n  [K in Keys]: number;\n};\n```\n\n### CLI\n\nFind `InputType` in `src/index.ts` file and get the output type:\n\n```console\nnpx ts-resolve-type src/index.ts InputType\n```\n\nOutputs\n\n```ts\ntype InputType = {\n  1: number;\n  2: number;\n  3: number;\n};\n```\n\n### Node.js\n\n```ts\nimport { resolve } from \"ts-resolve-type\";\n\nconst resolved = await resolve(\"./src/index.ts\", \"InputType\");\n\n/*\nconst resolved = `type InputType = {\n  1: number;\n  2: number;\n  3: number;\n};`\n*/\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedrzejginter%2Fts-resolve-type","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedrzejginter%2Fts-resolve-type","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedrzejginter%2Fts-resolve-type/lists"}