import React from 'react'; import classnames from 'classnames'; import { Tooltip as ReactTippy } from 'react-tippy'; import { readPartitionsFile } from '../../common/partitions-file'; type Summary = { numConvertedModules: number; numModules: number; }; function calculatePercentageComplete(summary: Summary) { return ((summary.numConvertedModules / summary.numModules) * 100).toFixed(1); } export default function App() { const partitions = readPartitionsFile(); const allModules = partitions.flatMap((partition) => { return partition.children; }); const overallTotal = { numConvertedModules: allModules.filter((module) => module.hasBeenConverted) .length, numModules: allModules.length, }; return ( <>
This is a dashboard that tracks the status of converting the extension codebase from JavaScript to TypeScript. It is updated whenever a new commit is pushed to the codebase, so it always represents the current work.
Each box
These boxes are further partitioned by level. The level of
a file is how many files you have to import before you reach that
file in the whole codebase. For instance, if we have a file{' '}
foo.js
, and that file imports bar.js
and{' '}
baz.js
, and baz.js
imports{' '}
qux.js
, then:
foo.js
would be at level 1
bar.js
and baz.js
would be at{' '}
level 2
qux.js
would be at level 3
This level assignment can be used to determine a priority for converting the remaining JavaScript files. Files which have fewer dependencies should in theory be easier to convert, so files with a higher level should be converted first. In other words,{' '} you should be able to start from the top and go down .