MetaMask / MetaMask/metamask-extension

Refactor MetaMask extension to TypeScript

Open
#13,452 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

epic team-extension-platform type-refactor
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

### Background
It has been a long term goal of the MetaMask engineering team to convert all organization JavaScript code to TypeScript to take advantage of it's developer experience and type safety. Our goal was to convert all of the extension dependencies that we maintain to TypeScript first so that we could rely upon the types we create for them. We have progressed that goal a great deal, with only a handful of repositories remaining that have not yet been converted. Our new strategy is to try and convert leaf node files with few dependencies to use TypeScript, and then work our way to the trunk files. If we hit files that bring in dependencies that are not yet typed we will resolve to find types for them in the `@types` DefinitelyTyped repo. If those do not exist, or we own the dependency that is untyped, we will work around them until we have types.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by identifying a leaf-node JavaScript file in the extension and checking its dependencies for existing TypeScript or DefinitelyTyped types; completion is not narrowly defined beyond progressing the broader conversion goal.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
developer-experience
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.