ooni / ooni/explorer

Proposal: Migrate to TypeScript

Open
#853 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
92
Forks
45
PR merge metrics
No merged PRs in 30d

Description

Reasons

I have gone through a reasonable amount of the codebase and I have seen that there is a need to improve the development experience and code quality. TypeScript is better suited for building and managing large-scale applications with multiple teams.

  • It checks the code for errors and warnings before you run it.
  • It static typing feature will reduce the number of errors at build time; hence better developer experience.
  • There will be no need for prop-types, type checking feature will take care of this.
  • It makes code easier to read, maintain, and debug, and can also help reduce the risk of security vulnerabilities.
  • It provides extra tooling and features like interfaces, classes, namespaces, generics, etc.

Proposal

  • Migration can be done in parts since existing JavaScript code will still run in TypeScript.
  • TypeScript code must not be strictly typed as the migration starts. Changes can be made as it progresses. For example, tests can still be left as JavaScript code.

Contributor guide

No contributing guide indexed for this repository

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

Start by reviewing the existing JavaScript codebase and tests to identify a feasible migration phase. The proposal does not name files, entry points, or a concrete scope, so define those boundaries and measurable completion criteria before implementation.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.