2023-03-17 03:03:12 +01:00
|
|
|
import React, { useState } from 'react';
|
2023-02-08 15:33:03 +01:00
|
|
|
import { readPartitionsFile } from '../../common/partitions-file';
|
2023-03-17 03:03:12 +01:00
|
|
|
import type { ModulePartitionChild } from '../../common/build-module-partitions';
|
|
|
|
import Box from './Box';
|
|
|
|
import Connections from './Connections';
|
|
|
|
import type { BoxRect, BoxModel } from './types';
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
|
|
|
|
type Summary = {
|
2023-02-16 22:38:49 +01:00
|
|
|
numConvertedModules: number;
|
|
|
|
numModules: number;
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
function calculatePercentageComplete(summary: Summary) {
|
2023-02-16 22:38:49 +01:00
|
|
|
return ((summary.numConvertedModules / summary.numModules) * 100).toFixed(1);
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
}
|
|
|
|
|
2023-03-17 03:03:12 +01:00
|
|
|
const partitions = readPartitionsFile();
|
|
|
|
const allModules = partitions.flatMap((partition) => {
|
|
|
|
return partition.children;
|
|
|
|
});
|
|
|
|
const modulesById = allModules.reduce<Record<string, ModulePartitionChild>>(
|
|
|
|
(obj, module) => {
|
|
|
|
return { ...obj, [module.id]: module };
|
|
|
|
},
|
|
|
|
{},
|
|
|
|
);
|
|
|
|
const overallTotal = {
|
|
|
|
numConvertedModules: allModules.filter((module) => module.hasBeenConverted)
|
|
|
|
.length,
|
|
|
|
numModules: allModules.length,
|
|
|
|
};
|
|
|
|
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
export default function App() {
|
2023-03-17 03:03:12 +01:00
|
|
|
const [boxRectsByModuleId, setBoxRectsById] = useState<Record<
|
|
|
|
string,
|
|
|
|
BoxRect
|
|
|
|
> | null>(null);
|
|
|
|
const boxesByModuleId =
|
|
|
|
boxRectsByModuleId === null
|
|
|
|
? {}
|
|
|
|
: Object.values(boxRectsByModuleId).reduce<Record<string, BoxModel>>(
|
|
|
|
(obj, boxRect) => {
|
|
|
|
const module = modulesById[boxRect.moduleId];
|
|
|
|
|
|
|
|
const dependencyBoxRects = module.dependencyIds.reduce<BoxRect[]>(
|
|
|
|
(dependencyBoxes, dependencyId) => {
|
|
|
|
if (boxRectsByModuleId[dependencyId] === undefined) {
|
|
|
|
return dependencyBoxes;
|
|
|
|
}
|
|
|
|
return [...dependencyBoxes, boxRectsByModuleId[dependencyId]];
|
|
|
|
},
|
|
|
|
[],
|
|
|
|
);
|
|
|
|
|
|
|
|
const dependentBoxRects = module.dependentIds.reduce<BoxRect[]>(
|
|
|
|
(dependentBoxes, dependentId) => {
|
|
|
|
if (boxRectsByModuleId[dependentId] === undefined) {
|
|
|
|
return dependentBoxes;
|
|
|
|
}
|
|
|
|
return [...dependentBoxes, boxRectsByModuleId[dependentId]];
|
|
|
|
},
|
|
|
|
[],
|
|
|
|
);
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
|
2023-03-17 03:03:12 +01:00
|
|
|
return {
|
|
|
|
...obj,
|
|
|
|
[boxRect.moduleId]: {
|
|
|
|
rect: boxRect,
|
|
|
|
dependencyBoxRects,
|
|
|
|
dependentBoxRects,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
},
|
|
|
|
{},
|
|
|
|
);
|
|
|
|
const [activeBoxRectId, setActiveBoxRectId] = useState<string | null>(null);
|
|
|
|
const activeBoxRect =
|
|
|
|
boxRectsByModuleId === null || activeBoxRectId === null
|
|
|
|
? null
|
|
|
|
: boxRectsByModuleId[activeBoxRectId];
|
|
|
|
|
|
|
|
const registerBox = (id: string, boxRect: BoxRect) => {
|
|
|
|
setBoxRectsById((existingBoxRectsById) => {
|
|
|
|
if (existingBoxRectsById === undefined) {
|
|
|
|
return { [id]: boxRect };
|
|
|
|
}
|
|
|
|
return { ...existingBoxRectsById, [id]: boxRect };
|
|
|
|
});
|
|
|
|
};
|
|
|
|
const toggleConnectionsFor = (id: string) => {
|
|
|
|
if (activeBoxRectId !== undefined && activeBoxRectId === id) {
|
|
|
|
setActiveBoxRectId(null);
|
|
|
|
} else {
|
|
|
|
setActiveBoxRectId(id);
|
|
|
|
}
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<h1 className="page-header">
|
|
|
|
<img src="images/metamask-fox.svg" className="page-header__icon" />
|
|
|
|
Extension TypeScript Migration Status
|
|
|
|
</h1>
|
|
|
|
<h2
|
|
|
|
className="overall-summary"
|
|
|
|
style={{
|
|
|
|
'--progress': `${calculatePercentageComplete(overallTotal)}%`,
|
|
|
|
}}
|
|
|
|
>
|
2023-02-16 22:38:49 +01:00
|
|
|
OVERALL: {overallTotal.numConvertedModules}/{overallTotal.numModules} (
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
{calculatePercentageComplete(overallTotal)}%)
|
|
|
|
</h2>
|
|
|
|
<details className="help">
|
|
|
|
<summary className="help__question">What is this?</summary>
|
|
|
|
<div className="help__answer">
|
|
|
|
<p>
|
|
|
|
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.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
2023-03-17 03:03:12 +01:00
|
|
|
Each box on this page represents a file in the codebase. Gray boxes
|
|
|
|
<span className="module module--inline module--to-be-converted">
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
|
2023-03-17 03:03:12 +01:00
|
|
|
</span>
|
|
|
|
represent files that need to be converted to TypeScript. Green boxes
|
|
|
|
<span className="module module--inline module--has-been-converted">
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
|
2023-03-17 03:03:12 +01:00
|
|
|
</span>
|
|
|
|
are files that have already been converted. Faded boxes
|
|
|
|
<span className="module module--inline module--to-be-converted module--test">
|
|
|
|
|
|
|
|
</span>
|
|
|
|
<span
|
|
|
|
className="module module--inline module--has-been-converted module--test"
|
|
|
|
style={{ marginLeft: 0 }}
|
|
|
|
>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
are test or Storybook files.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
You can hover over a box to see the name of the file that it
|
|
|
|
represents. You can also click on a box to see connections between
|
|
|
|
other files;{' '}
|
|
|
|
<strong className="module-connection__dependency">red</strong> lines
|
|
|
|
lead to dependencies (other files that import the file);{' '}
|
|
|
|
<strong className="module-connection__dependent">blue</strong> lines
|
|
|
|
lead to dependents (other files that are imported by the file).
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
These boxes are further partitioned by <em>level</em>. 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{' '}
|
|
|
|
<code>foo.js</code>, and that file imports <code>bar.js</code> and{' '}
|
|
|
|
<code>baz.js</code>, and <code>baz.js</code> imports{' '}
|
|
|
|
<code>qux.js</code>, then:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<code>foo.js</code> would be at <em>level 1</em>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<code>bar.js</code> and <code>baz.js</code> would be at{' '}
|
|
|
|
<em>level 2</em>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<code>qux.js</code> would be at <em>level 3</em>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
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,{' '}
|
|
|
|
<strong>
|
|
|
|
you should be able to start from the top and go down
|
|
|
|
</strong>
|
|
|
|
.
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</details>
|
2023-02-16 22:38:49 +01:00
|
|
|
<div className="partitions">
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
{partitions.map((partition) => {
|
|
|
|
return (
|
2023-02-16 22:38:49 +01:00
|
|
|
<div key={partition.level} className="partition">
|
|
|
|
<div className="partition__name">level {partition.level}</div>
|
|
|
|
<div className="partition__children">
|
2023-03-17 03:03:12 +01:00
|
|
|
{partition.children.map((module) => {
|
|
|
|
const areConnectionsVisible = activeBoxRectId === module.id;
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
return (
|
2023-03-17 03:03:12 +01:00
|
|
|
<Box
|
|
|
|
key={module.id}
|
|
|
|
module={module}
|
|
|
|
register={registerBox}
|
|
|
|
toggleConnectionsFor={toggleConnectionsFor}
|
|
|
|
areConnectionsVisible={areConnectionsVisible}
|
|
|
|
/>
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
);
|
|
|
|
})}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
})}
|
2023-03-17 03:03:12 +01:00
|
|
|
{activeBoxRect === null ? null : (
|
|
|
|
<Connections activeBox={boxesByModuleId[activeBoxRect.moduleId]} />
|
|
|
|
)}
|
Add TypeScript migration dashboard (#13820)
As we convert parts of the codebase to TypeScript, we will want a way to
track progress. This commit adds a dashboard which displays all of the
files that we wish to convert to TypeScript and which files we've
already converted.
The list of all possible files to convert is predetermined by walking
the dependency graph of each entrypoint the build system uses to compile
the extension (the files that the entrypoint imports, the files that the
imports import, etc). The list should not need to be regenerated, but
you can do it by running:
yarn ts-migration:enumerate
The dashboard is implemented as a separate React app. The CircleCI
configuration has been updated so that when a new commit is pushed, the
React app is built and stored in the CircleCI artifacts. When a PR is
merged, the built files will be pushed to a separate repo whose sole
purpose is to serve the dashboard via GitHub Pages (this is the same
way that the Storybook works). All of the app code and script to build
the app are self-contained under
`development/ts-migration-dashboard`. To build this app yourself, you
can run:
yarn ts-migration:dashboard:build
or if you want to build automatically as you change files, run:
yarn ts-migration:dashboard:watch
Then open the following file in your browser (there is no server
component):
development/ts-migration-dashboard/build/index.html
Finally, although you shouldn't have to do this, to manually deploy the
dashboard once built, you can run:
git remote add ts-migration-dashboard git@github.com:MetaMask/metamask-extension-ts-migration-dashboard.git
yarn ts-migration:dashboard:deploy
2022-08-09 22:16:08 +02:00
|
|
|
</div>
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|