Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import path from 'node:path';
export type Defines = {
'process.env.RESET_STORAGE': 'true' | 'false';
};
/**
* Gets the Vite / esbuild defines config object for one of our Vite builds.
*
* @see https://vite.dev/config/shared-options.html#define
* @param isDev - Whether it's a development build.
* @returns The Vite / esbuild defines.
*/
export function getDefines(isDev: boolean): Defines {
const rawVars = [
['RESET_STORAGE', process.env.RESET_STORAGE ?? (isDev ? 'true' : 'false')],
];
return Object.fromEntries(
rawVars.map(([key, value]) => [
`process.env.${key}`,
JSON.stringify(value),
]),
) as Defines;
}
/**
* Generates Vite aliases for workspace packages to enable proper sourcemap handling in development.
*
* By default, Vite resolves workspace packages to their `dist` folders, which breaks the
* sourcemap chain. These aliases force Vite to use the original TypeScript source from the
* `src` directories instead, ensuring a complete and accurate sourcemap for debugging.
*
* A special alias for `@metamask/kernel-ui/styles.css` is included to resolve the
* built stylesheet correctly from its `dist` folder.
*
* @param rootDir - The monorepo root directory.
* @param deps - The dependencies object from the `package.json` file.
* @returns An array of Vite alias objects for development mode.
*/
export function getPackageDevAliases(
rootDir: string,
deps: Record<string, string> = {},
): { find: string; replacement: string }[] {
const workspacePackages = Object.keys(deps)
.filter(
(name) => name.startsWith('@metamask/') && deps[name] === 'workspace:^',
)
.map((pkgName) => ({
find: pkgName,
replacement: path.resolve(
rootDir,
`packages/${pkgName.replace('@metamask/', '')}/src`,
),
}));
return [
// Special alias for kernel-ui styles, which are in dist
{
find: '@metamask/kernel-ui/styles.css',
replacement: path.resolve(rootDir, 'packages/kernel-ui/dist/styles.css'),
},
...workspacePackages,
];
}
|