Skip to content

Commit

Permalink
fix: [DependencyTree] handle export { mod as default }.
Browse files Browse the repository at this point in the history
  • Loading branch information
avocadowastaken committed Jul 15, 2021
1 parent 674eb5b commit 6543bc4
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 91 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import {
import Button from "@material-ui/core/esm/Button/index.js";
import * as colors from "@material-ui/core/esm/colors/index.js";
import makeStyles from "@material-ui/core/esm/styles/makeStyles.js";
import { ServerStyleSheets } from "@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js";
import ServerStyleSheets from "@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js";
import ChevronLeftIcon from "@material-ui/icons/esm/ChevronLeft.js";
import ChevronLeftIcon from "@material-ui/icons/esm/ChevronRight.js";
```
Expand Down
24 changes: 19 additions & 5 deletions lib/internal/DependencyTree.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,17 @@ class Dependency {
}

/**
* @param {string} id
* @param {Partial<Dependency>} values
* @returns {Dependency}
*/
setID(id) {
return new Dependency(this.filename, id, this.internalID);
update(values) {
const {
id = this.id,
filename = this.filename,
internalID = this.internalID,
} = values;

return new Dependency(filename, id, internalID);
}

get source() {
Expand Down Expand Up @@ -218,7 +224,15 @@ class DependencyTree {
if (specifier) {
specifiers.delete(dependency.id);
assert.ok(t.isIdentifier(specifier.exported));
yield dependency.setID(specifier.exported.name);

if (specifier.exported.name === "default") {
yield dependency.update({
id: specifier.exported.name,
internalID: "default",
});
} else {
yield dependency.update({ id: specifier.exported.name });
}
}
}

Expand All @@ -231,7 +245,7 @@ class DependencyTree {
const importedDependency = imports.get(specifier.local.name);

if (importedDependency) {
yield importedDependency.setID(specifier.exported.name);
yield importedDependency.update({ id: specifier.exported.name });
} else {
yield new Dependency(
filename,
Expand Down
2 changes: 1 addition & 1 deletion test/@material-ui/core/exports.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -872,7 +872,7 @@ Array [
],
Array [
"ServerStyleSheets",
"ServerStyleSheets",
"default",
"@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js",
],
Array [
Expand Down
2 changes: 1 addition & 1 deletion test/@material-ui/core/plugin.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ test("transformation", () => {
import Button from "@material-ui/core/esm/Button/Button.js";
import * as colors from "@material-ui/core/esm/colors/index.js";
import makeStyles from "@material-ui/core/esm/styles/makeStyles.js";
import { ServerStyleSheets } from "@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js";
import ServerStyleSheets from "@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js";
`);
});
166 changes: 83 additions & 83 deletions test/@material-ui/styles/exports.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,87 +4,87 @@ const testExports = require("../../testExports");

test("exports", () => {
expect(testExports("@material-ui/styles")).toMatchInlineSnapshot(`
Array [
Array [
"createGenerateClassName",
"default",
"@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js",
],
Array [
"createStyles",
"default",
"@material-ui/styles/esm/createStyles/createStyles.js",
],
Array [
"getThemeProps",
"default",
"@material-ui/styles/esm/getThemeProps/getThemeProps.js",
],
Array [
"jssPreset",
"default",
"@material-ui/styles/esm/jssPreset/jssPreset.js",
],
Array [
"makeStyles",
"default",
"@material-ui/styles/esm/makeStyles/makeStyles.js",
],
Array [
"mergeClasses",
"default",
"@material-ui/styles/esm/mergeClasses/mergeClasses.js",
],
Array [
"ServerStyleSheets",
"ServerStyleSheets",
"@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js",
],
Array [
"styled",
"default",
"@material-ui/styles/esm/styled/styled.js",
],
Array [
"StylesProvider",
"default",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"sheetsManager",
"sheetsManager",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"StylesContext",
"StylesContext",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"ThemeProvider",
"default",
"@material-ui/styles/esm/ThemeProvider/ThemeProvider.js",
],
Array [
"useTheme",
"default",
"@material-ui/styles/esm/useTheme/useTheme.js",
],
Array [
"withStyles",
"default",
"@material-ui/styles/esm/withStyles/withStyles.js",
],
Array [
"withTheme",
"default",
"@material-ui/styles/esm/withTheme/withTheme.js",
],
Array [
"withThemeCreator",
"withThemeCreator",
"@material-ui/styles/esm/withTheme/withTheme.js",
],
]
`);
Array [
Array [
"createGenerateClassName",
"default",
"@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js",
],
Array [
"createStyles",
"default",
"@material-ui/styles/esm/createStyles/createStyles.js",
],
Array [
"getThemeProps",
"default",
"@material-ui/styles/esm/getThemeProps/getThemeProps.js",
],
Array [
"jssPreset",
"default",
"@material-ui/styles/esm/jssPreset/jssPreset.js",
],
Array [
"makeStyles",
"default",
"@material-ui/styles/esm/makeStyles/makeStyles.js",
],
Array [
"mergeClasses",
"default",
"@material-ui/styles/esm/mergeClasses/mergeClasses.js",
],
Array [
"ServerStyleSheets",
"default",
"@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js",
],
Array [
"styled",
"default",
"@material-ui/styles/esm/styled/styled.js",
],
Array [
"StylesProvider",
"default",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"sheetsManager",
"sheetsManager",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"StylesContext",
"StylesContext",
"@material-ui/styles/esm/StylesProvider/StylesProvider.js",
],
Array [
"ThemeProvider",
"default",
"@material-ui/styles/esm/ThemeProvider/ThemeProvider.js",
],
Array [
"useTheme",
"default",
"@material-ui/styles/esm/useTheme/useTheme.js",
],
Array [
"withStyles",
"default",
"@material-ui/styles/esm/withStyles/withStyles.js",
],
Array [
"withTheme",
"default",
"@material-ui/styles/esm/withTheme/withTheme.js",
],
Array [
"withThemeCreator",
"withThemeCreator",
"@material-ui/styles/esm/withTheme/withTheme.js",
],
]
`);
});

0 comments on commit 6543bc4

Please sign in to comment.