{"id":13465153,"url":"https://github.com/mockdeep/typewiz","last_synced_at":"2025-09-27T07:32:15.482Z","repository":{"id":51776814,"uuid":"117014891","full_name":"mockdeep/typewiz","owner":"mockdeep","description":"Automatically discover and add missing types in your TypeScript code","archived":true,"fork":false,"pushed_at":"2021-10-05T15:00:24.000Z","size":1818,"stargazers_count":1104,"open_issues_count":35,"forks_count":45,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-08-29T10:05:44.496Z","etag":null,"topics":["automation","code-quality","type-safety","typescript"],"latest_commit_sha":null,"homepage":"https://medium.com/@urish/manual-typing-is-no-fun-introducing-typewiz-58e3e8813f4c","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mockdeep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-10T21:48:31.000Z","updated_at":"2025-08-27T12:15:25.000Z","dependencies_parsed_at":"2022-09-14T17:43:03.853Z","dependency_job_id":null,"html_url":"https://github.com/mockdeep/typewiz","commit_stats":null,"previous_names":["urish/typewiz"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/mockdeep/typewiz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mockdeep%2Ftypewiz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mockdeep%2Ftypewiz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mockdeep%2Ftypewiz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mockdeep%2Ftypewiz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mockdeep","download_url":"https://codeload.github.com/mockdeep/typewiz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mockdeep%2Ftypewiz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274131173,"owners_count":25227475,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["automation","code-quality","type-safety","typescript"],"created_at":"2024-07-31T14:01:01.477Z","updated_at":"2025-09-27T07:32:10.680Z","avatar_url":"https://github.com/mockdeep.png","language":"TypeScript","readme":"# Deprecation Notice\n\nAs of 2021, I'm no longer working on TypeWiz. If anyone is interested in forking and developing it, you are more than welcome!\n\nIn case you are wondering, nowadays I work on an Wokwi, [an online Arduino \u0026 electronics simulation platform](https://wokwi.com).\n\n--\n\n## TypeWiz\nAutomatically discover and add missing types in your TypeScript code.\n\n\u003cimg src=\"https://github.com/urish/typewiz/blob/master/assets/typewiz.png?raw=true\" alt=\"TypeWiz\"/\u003e\n\n[![Build Status](https://travis-ci.org/urish/typewiz.png?branch=master)](https://travis-ci.org/urish/typewiz)\n[![Coverage Status](https://coveralls.io/repos/github/urish/typewiz/badge.svg?branch=master)](https://coveralls.io/github/urish/typewiz?branch=master)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n\n## Introduction\n\nTypeWiz monitors your variable types in runtime, and uses this information to add missing type annotations to your\nTypeScript code. For instance, given the following source code as input:\n\n```typescript\nfunction add(a, b) {\n    return a + b;\n}\nadd(5, 6);\n```\n\nTypeWiz will automatically detect the types of `a` and `b` as `number`, and will rewrite to code to read:\n\n```typescript\nfunction add(a: number, b: number) {\n    return a + b;\n}\nadd(5, 6);\n```\n\nYou can learn more about the project in the blog posts:\n\n* [Manual Typing is No Fun: Introducing TypeWiz!](https://medium.com/@urish/manual-typing-is-no-fun-introducing-typewiz-58e3e8813f4c)\n* [Diving into the Internals of TypeScript: How I Built TypeWiz](https://medium.com/@urish/diving-into-the-internals-of-typescript-how-i-built-typewiz-d273bbef3565)\n\n## Usage\n\nFor front-end code, please have a look at the [TypeWiz WebPack Plugin](packages/typewiz-webpack/README.md).\n\nFor node.js code, please check out the [typewiz-node Runner](packages/typewiz-node/README.md).\n\nTo use TypeWiz from the command line try the [TypeWiz CLI](packages/typewiz/README.md).\n\nIf you are interested in creating your own custom integration, see the [Integration Test](packages/typewiz-core/src/integration.spec.ts) \nfor an example how to directly use the TypeWiz API. You can use the API directly by adding this library to your project:\n\n    yarn add -D typewiz-core\n\nor\n\n    npm install --save-dev typewiz-core\n\n## Configuration options\n\nConfiguration options can be specified using the `typewiz.json` configuration file. This file is used by `typewiz-node`\nand `typewiz-webpack` and can be parsed using the `ConfigurationParser` class in `typewiz-core` for custom integrations.\n\nThe `typewiz.json` file has the following format:\n```json\n{\n    \"common\":{\n        \"rootDir\":\".\",\n        \"tsConfig\":\"tsconfig.json\"\n    },\n    \"instrument\":{\n        \"instrumentCallExpressions\":true,\n        \"instrumentImplicitThis\":true,\n        \"skipTwizDeclarations\":true\n    },\n    \"applyTypes\":{\n        \"prefix\":\"TypeWiz |\"\n    }\n}\n```\n\nOptions:\n* `rootDir: string` (default: undefined) - If given, all the file paths in the collected type info will be resolved relative to this directory.\n* `tsConfig: string` (default: undefined) - The path to your project's tsconfig.json file. \n    This is required for several other options, like instrumenting implicit this and type inference using static analysis.\n\n* `instrumentCallExpressions: boolean` (default: false) - Try to find even more types by combining static analysis with\n    the runtime analysis. TypeWiz will try to use TypeScript's inferred types when determining the type of a function argument. See [#27](https://github.com/urish/typewiz/pull/27) for an example.\n* `instrumentImplicitThis: boolean` (default: false) - Find type of `this` in non-class member functions. See [#33](https://github.com/urish/typewiz/issues/33) for discussion.\n* `skipTwizDeclarations: boolean` (default: false) - Don't add a declaration of $_$twiz to instrumented files.\n\n* `prefix: string` (default: '') - A prefix to add before each type added by `applyTypes()`. See [#11](https://github.com/urish/typewiz/issues/11).\n\n## License\n\nCopyright (C) 2018, Uri Shaked. Licensed under the MIT license.\n","funding_links":[],"categories":["TypeScript","code-quality","📦 Legacy \u0026 Inactive Projects","typescript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmockdeep%2Ftypewiz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmockdeep%2Ftypewiz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmockdeep%2Ftypewiz/lists"}