@mui/codemod 5.14.1 → 5.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -1
- package/node/v5.0.0/base-use-named-exports.js +99 -0
- package/node/v5.0.0/base-use-named-exports.test/actual-with-warning.js +23 -0
- package/node/v5.0.0/base-use-named-exports.test/actual.js +61 -0
- package/node/v5.0.0/base-use-named-exports.test/expected-with-warning.js +21 -0
- package/node/v5.0.0/base-use-named-exports.test/expected.js +58 -0
- package/node/v5.0.0/tree-view-moved-to-x.js +86 -0
- package/node/v5.0.0/tree-view-moved-to-x.test/actual-root.js +3 -0
- package/node/v5.0.0/tree-view-moved-to-x.test/actual-sub-module.js +8 -0
- package/node/v5.0.0/tree-view-moved-to-x.test/expected-root.js +4 -0
- package/node/v5.0.0/tree-view-moved-to-x.test/expected-sub-module.js +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -62,6 +62,25 @@ npx @mui/codemod <transform> <path> --jscodeshift="--printOptions='{\"quote\":\"
|
|
|
62
62
|
|
|
63
63
|
### v5.0.0
|
|
64
64
|
|
|
65
|
+
### `base-use-named-exports`
|
|
66
|
+
|
|
67
|
+
Base UI default exports were changed to named ones. Previously we had a mix of default and named ones.
|
|
68
|
+
This was changed to improve consistency and avoid problems some bundlers have with default exports.
|
|
69
|
+
See https://github.com/mui/material-ui/issues/21862 for more context.
|
|
70
|
+
|
|
71
|
+
This codemod updates the import and re-export statements.
|
|
72
|
+
|
|
73
|
+
```diff
|
|
74
|
+
- import BaseButton from '@mui/base/Button';
|
|
75
|
+
+ import { Button as BaseButton } from '@mui/base/Button';
|
|
76
|
+
- export { default as BaseSlider } from '@mui/base/Slider';
|
|
77
|
+
+ export { Slider as BaseSlider } from '@mui/base/Slider';
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx @mui/codemod v5.0.0/base-use-named-exports <path>
|
|
82
|
+
```
|
|
83
|
+
|
|
65
84
|
### `base-remove-unstyled-suffix`
|
|
66
85
|
|
|
67
86
|
The `Unstyled` suffix has been removed from all Base UI component names, including names of types and other related identifiers.
|
|
@@ -247,12 +266,20 @@ The associated breaking change was done in [#34997](https://github.com/mui/mater
|
|
|
247
266
|
|
|
248
267
|
#### `date-pickers-moved-to-x`
|
|
249
268
|
|
|
250
|
-
Rename the imports of
|
|
269
|
+
Rename the imports of Date and Time Pickers from `@mui/lab` to `@mui/x-date-pickers` and `@mui/x-date-pickers-pro`.
|
|
251
270
|
|
|
252
271
|
```bash
|
|
253
272
|
npx @mui/codemod v5.0.0/date-pickers-moved-to-x <path>
|
|
254
273
|
```
|
|
255
274
|
|
|
275
|
+
#### `tree-view-moved-to-x`
|
|
276
|
+
|
|
277
|
+
Rename the imports of Tree View from `@mui/lab` to `@mui/x-tree-view`.
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
npx @mui/codemod v5.0.0/tree-view-moved-to-x <path>
|
|
281
|
+
```
|
|
282
|
+
|
|
256
283
|
#### 🚀 `preset-safe`
|
|
257
284
|
|
|
258
285
|
A combination of all important transformers for migrating v4 to v5. ⚠️ This codemod should be run only once.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = transformer;
|
|
7
|
+
// certain exports don't match the directory they are in:
|
|
8
|
+
const nameMapping = {
|
|
9
|
+
className: 'Unstable_ClassNameGenerator',
|
|
10
|
+
composeClasses: 'unstable_composeClasses',
|
|
11
|
+
generateUtilityClass: 'unstable_generateUtilityClass',
|
|
12
|
+
generateUtilityClasses: 'unstable_generateUtilityClasses',
|
|
13
|
+
NumberInput: 'Unstable_NumberInput'
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// renamed directories to match the export:
|
|
17
|
+
const pathMapping = {
|
|
18
|
+
'@mui/base/className': '@mui/base/ClassNameGenerator'
|
|
19
|
+
};
|
|
20
|
+
function getExportedIdentifier(importPath) {
|
|
21
|
+
var _nameMapping$importPa;
|
|
22
|
+
return (_nameMapping$importPa = nameMapping[importPath]) != null ? _nameMapping$importPa : importPath;
|
|
23
|
+
}
|
|
24
|
+
function getTransformedPath(originalPath) {
|
|
25
|
+
var _pathMapping$original;
|
|
26
|
+
return (_pathMapping$original = pathMapping[originalPath]) != null ? _pathMapping$original : originalPath;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Finds the last segment of the path starting with @mui/base.
|
|
31
|
+
*
|
|
32
|
+
* @example '@mui/base/Menu' ➔ 'Menu'
|
|
33
|
+
* @example '@mui/base' ➔ null
|
|
34
|
+
*/
|
|
35
|
+
function getBaseImportIdentifier(path, filePath) {
|
|
36
|
+
var _path$node, _baseImportPathMatch$, _baseImportPathMatch$2;
|
|
37
|
+
const source = path == null || (_path$node = path.node) == null || (_path$node = _path$node.source) == null ? void 0 : _path$node.value;
|
|
38
|
+
if (!source) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const baseImportPathMatch = source.match(/@mui\/base\/(.+)/);
|
|
42
|
+
if (baseImportPathMatch == null) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
if ((_baseImportPathMatch$ = baseImportPathMatch[1]) != null && _baseImportPathMatch$.includes('/')) {
|
|
46
|
+
console.warn(`WARNING: ${filePath}: "${source}" is more than one level deep. This is not supported.`);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return (_baseImportPathMatch$2 = baseImportPathMatch[1]) != null ? _baseImportPathMatch$2 : null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @param {import('jscodeshift').FileInfo} file
|
|
54
|
+
* @param {import('jscodeshift').API} api
|
|
55
|
+
*/
|
|
56
|
+
function transformer(file, api, options) {
|
|
57
|
+
const j = api.jscodeshift;
|
|
58
|
+
const printOptions = options.printOptions;
|
|
59
|
+
const withTransformedImports = j(file.source).find(j.ImportDeclaration).forEach(path => {
|
|
60
|
+
const baseImportPath = getBaseImportIdentifier(path, file.path);
|
|
61
|
+
if (baseImportPath === null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
path.node.specifiers = path.node.specifiers.map(specifier => {
|
|
65
|
+
if (specifier.type !== 'ImportDefaultSpecifier') {
|
|
66
|
+
return specifier;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// import Y from @mui/base/X ➔ import { X as Y } from @mui/base/X
|
|
70
|
+
return j.importSpecifier(j.identifier(getExportedIdentifier(baseImportPath)), specifier.local);
|
|
71
|
+
});
|
|
72
|
+
path.node.source = j.stringLiteral(getTransformedPath(path.node.source.value));
|
|
73
|
+
}).toSource(printOptions);
|
|
74
|
+
return j(withTransformedImports).find(j.ExportNamedDeclaration).forEach(path => {
|
|
75
|
+
const baseImportPath = getBaseImportIdentifier(path);
|
|
76
|
+
if (baseImportPath === null) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
path.node.specifiers = path.node.specifiers.map(specifier => {
|
|
80
|
+
if (specifier.local.name !== 'default') {
|
|
81
|
+
return specifier;
|
|
82
|
+
}
|
|
83
|
+
if (specifier.exported.name === 'default') {
|
|
84
|
+
// export { default } from @mui/base/X ➔ export { X as default } from @mui/base/X
|
|
85
|
+
return j.exportSpecifier.from({
|
|
86
|
+
exported: j.identifier('default'),
|
|
87
|
+
local: j.identifier(baseImportPath)
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// export { default as Y } from @mui/base/X ➔ export { X as Y } from @mui/base/X
|
|
92
|
+
return j.exportSpecifier.from({
|
|
93
|
+
exported: j.identifier(specifier.exported.name),
|
|
94
|
+
local: j.identifier(getExportedIdentifier(baseImportPath))
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
path.node.source = j.stringLiteral(getTransformedPath(path.node.source.value));
|
|
98
|
+
}).toSource(printOptions);
|
|
99
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _Slider.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "sliderClasses", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _Slider.sliderClasses;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _Button = _interopRequireDefault(require("@mui/base/Button"));
|
|
20
|
+
var _ClassNameConfigurator = _interopRequireDefault(require("@mui/base/utils/ClassNameConfigurator"));
|
|
21
|
+
var _Slider = _interopRequireWildcard(require("@mui/base/Slider"));
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "BaseOption", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _Option.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "BaseTabPanel", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _TabPanel.default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "NumberInput", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _NumberInput.default;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "Unstable_ClassNameGenerator", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _className.Unstable_ClassNameGenerator;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "default", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _Slider.default;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "sliderClasses", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _Slider.sliderClasses;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "tabPanelClasses", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _TabPanel.tabPanelClasses;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
var _Button = _interopRequireDefault(require("@mui/base/Button"));
|
|
50
|
+
var _Badge = _interopRequireWildcard(require("@mui/base/Badge"));
|
|
51
|
+
var _Switch = _interopRequireDefault(require("@mui/base/Switch"));
|
|
52
|
+
var _Select = _interopRequireWildcard(require("@mui/base/Select"));
|
|
53
|
+
var _base = require("@mui/base");
|
|
54
|
+
var _composeClasses = _interopRequireDefault(require("@mui/base/composeClasses"));
|
|
55
|
+
var _NumberInput = _interopRequireDefault(require("@mui/base/NumberInput"));
|
|
56
|
+
var _className = require("@mui/base/className");
|
|
57
|
+
var _Slider = _interopRequireWildcard(require("@mui/base/Slider"));
|
|
58
|
+
var _Option = _interopRequireDefault(require("@mui/base/Option"));
|
|
59
|
+
var _TabPanel = _interopRequireWildcard(require("@mui/base/TabPanel"));
|
|
60
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
61
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _Slider.Slider;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "sliderClasses", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _Slider.sliderClasses;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _Button = require("@mui/base/Button");
|
|
20
|
+
var _ClassNameConfigurator = _interopRequireDefault(require("@mui/base/utils/ClassNameConfigurator"));
|
|
21
|
+
var _Slider = require("@mui/base/Slider");
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BaseOption", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Option.Option;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "BaseTabPanel", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _TabPanel.TabPanel;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "NumberInput", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _NumberInput.Unstable_NumberInput;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "Unstable_ClassNameGenerator", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _ClassNameGenerator.Unstable_ClassNameGenerator;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "default", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _Slider.Slider;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "sliderClasses", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _Slider.sliderClasses;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "tabPanelClasses", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _TabPanel.tabPanelClasses;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var _Button = require("@mui/base/Button");
|
|
49
|
+
var _Badge = require("@mui/base/Badge");
|
|
50
|
+
var _Switch = require("@mui/base/Switch");
|
|
51
|
+
var _Select = require("@mui/base/Select");
|
|
52
|
+
var _base = require("@mui/base");
|
|
53
|
+
var _composeClasses = require("@mui/base/composeClasses");
|
|
54
|
+
var _NumberInput = require("@mui/base/NumberInput");
|
|
55
|
+
var _ClassNameGenerator = require("@mui/base/ClassNameGenerator");
|
|
56
|
+
var _Slider = require("@mui/base/Slider");
|
|
57
|
+
var _Option = require("@mui/base/Option");
|
|
58
|
+
var _TabPanel = require("@mui/base/TabPanel");
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = transformer;
|
|
7
|
+
const _exports = {
|
|
8
|
+
TreeView: {
|
|
9
|
+
default: 'TreeView',
|
|
10
|
+
named: ['treeViewClasses', 'TreeViewClasses', 'TreeViewClassKey', 'getTreeViewUtilityClass', 'TreeViewPropsBase', 'TreeViewProps', 'SingleSelectTreeViewProps', 'MultiSelectTreeViewProps']
|
|
11
|
+
},
|
|
12
|
+
TreeItem: {
|
|
13
|
+
default: 'TreeItem',
|
|
14
|
+
named: ['useTreeItem', 'treeItemClasses', 'TreeItemClasses', 'TreeItemClassKey', 'getTreeItemUtilityClass', 'TreeItemProps', 'TreeItemContentProps']
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const buildLookup = () => {
|
|
18
|
+
return Object.fromEntries(Object.entries(_exports).flatMap(([entryPoint, entryPointData]) => [entryPointData.default, ...entryPointData.named].map(exportName => [exportName, {
|
|
19
|
+
entryPoint
|
|
20
|
+
}])));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @param {import('jscodeshift').FileInfo} file
|
|
25
|
+
* @param {import('jscodeshift').API} api
|
|
26
|
+
*/
|
|
27
|
+
function transformer(fileInfo, api, options) {
|
|
28
|
+
const j = api.jscodeshift;
|
|
29
|
+
const printOptions = options.printOptions || {
|
|
30
|
+
quote: 'single'
|
|
31
|
+
};
|
|
32
|
+
const lookup = buildLookup();
|
|
33
|
+
const root = j(fileInfo.source);
|
|
34
|
+
root.find(j.ImportDeclaration).forEach(path => {
|
|
35
|
+
const importSource = path.node.source.value;
|
|
36
|
+
const subPackageImportMatch = importSource.match(/@mui\/lab\/(.*)/);
|
|
37
|
+
if (subPackageImportMatch !== null) {
|
|
38
|
+
const subModule = subPackageImportMatch[1];
|
|
39
|
+
if (subModule.startsWith('internal')) {
|
|
40
|
+
console.warn('Imports from `@mui/lab/internal` are not supported');
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (_exports[subModule]) {
|
|
44
|
+
/**
|
|
45
|
+
* @type {import('jscodeshift').ASTPath}
|
|
46
|
+
*/
|
|
47
|
+
const sourcePath = path.get('source');
|
|
48
|
+
const targetPackage = '@mui/x-tree-view';
|
|
49
|
+
const targetImportPath = `${targetPackage}/${subModule}`;
|
|
50
|
+
sourcePath.replace(j.stringLiteral(targetImportPath));
|
|
51
|
+
const importDeclaration = path.value;
|
|
52
|
+
importDeclaration.specifiers = importDeclaration.specifiers.map(specifier => {
|
|
53
|
+
if (specifier.type === 'ImportDefaultSpecifier') {
|
|
54
|
+
const localName = specifier.local.name;
|
|
55
|
+
return j.importSpecifier(j.identifier(subModule), j.identifier(localName));
|
|
56
|
+
}
|
|
57
|
+
return specifier;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
} else if (importSource === '@mui/lab') {
|
|
61
|
+
// Sieve import specifiers into /core and /lab
|
|
62
|
+
const xImportSpecifiers = [];
|
|
63
|
+
const labImportSpecifiers = [];
|
|
64
|
+
path.node.specifiers.forEach(specifier => {
|
|
65
|
+
if (specifier.type === 'ImportSpecifier') {
|
|
66
|
+
const lookupValue = lookup[specifier.imported.name];
|
|
67
|
+
if (lookupValue) {
|
|
68
|
+
xImportSpecifiers.push(specifier);
|
|
69
|
+
} else {
|
|
70
|
+
labImportSpecifiers.push(specifier);
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
// `import Lab from '@material-ui/lab'`
|
|
74
|
+
// `import * as Lab from '@material-ui/lab'`
|
|
75
|
+
// These imports would require scope analysis.
|
|
76
|
+
console.warn(`Can't handle ${specifier.type}`);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (xImportSpecifiers.length > 0) {
|
|
80
|
+
const targetPackage = '@mui/x-tree-view';
|
|
81
|
+
path.replace(j.importDeclaration(xImportSpecifiers, j.stringLiteral(targetPackage)), j.importDeclaration(labImportSpecifiers, j.stringLiteral('@mui/lab')));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}).toSource(printOptions);
|
|
85
|
+
return root.toSource(printOptions);
|
|
86
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _TreeView = _interopRequireWildcard(require("@mui/lab/TreeView"));
|
|
5
|
+
var _TreeItem = _interopRequireWildcard(require("@mui/lab/TreeItem"));
|
|
6
|
+
var _Timeline = _interopRequireDefault(require("@mui/lab/Timeline"));
|
|
7
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
8
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _TreeView = require("@mui/x-tree-view/TreeView");
|
|
5
|
+
var _TreeItem = require("@mui/x-tree-view/TreeItem");
|
|
6
|
+
var _Timeline = _interopRequireDefault(require("@mui/lab/Timeline"));
|