Skip to content

Commit

Permalink
Include TS modules in rollup import resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
michaldudak committed Sep 1, 2021
1 parent c19e8f4 commit 7aa3ca0
Showing 1 changed file with 21 additions and 25 deletions.
46 changes: 21 additions & 25 deletions packages/material-ui/scripts/rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { promises as fs } from 'fs';
import fs from 'fs';
import path from 'path';
import zlib from 'zlib';
import { promisify } from 'util';
Expand Down Expand Up @@ -74,44 +74,40 @@ function sizeSnapshot(options) {
};
}

function resolveNestedImport(packageFolder, importee) {
const folder = importee.split('/')[2];
const resolvedPrefix = path.resolve(
__dirname,
`../../../packages/${packageFolder}/src/${folder}/index`,
);

const resolvedTs = `${resolvedPrefix}.ts`;

if (fs.existsSync(resolvedTs)) {
return resolvedTs;
}

return `${resolvedPrefix}.js`;
}

// Resolve imports like:
// import Portal from '@mui/core/Portal';
const nestedFolder = {
resolveId: (importee) => {
if (importee.indexOf('@mui/core/') === 0) {
const folder = importee.split('/')[2];
const resolved = path.resolve(
__dirname,
`../../../packages/material-ui-unstyled/src/${folder}/index.js`,
);
return resolved;
return resolveNestedImport('material-ui-unstyled', importee);
}

if (importee.indexOf('@mui/private-theming/') === 0) {
const folder = importee.split('/')[2];
const resolved = path.resolve(
__dirname,
`../../../packages/material-ui-private-theming/src/${folder}/index.js`,
);
return resolved;
return resolveNestedImport('material-ui-private-theming', importee);
}

if (importee.indexOf('@mui/styled-engine/') === 0) {
const folder = importee.split('/')[2];
const resolved = path.resolve(
__dirname,
`../../../packages/material-ui-styled-engine/src/${folder}/index.js`,
);
return resolved;
return resolveNestedImport('material-ui-styled-engine', importee);
}

if (importee.indexOf('@mui/system/') === 0) {
const folder = importee.split('/')[2];
const resolved = path.resolve(
__dirname,
`../../../packages/material-ui-system/src/${folder}/index.js`,
);
return resolved;
return resolveNestedImport('material-ui-system', importee);
}

return undefined;
Expand Down

0 comments on commit 7aa3ca0

Please sign in to comment.