@mui/codemod 6.0.1 → 6.1.0

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 CHANGED
@@ -1103,19 +1103,6 @@ npx @mui/codemod@latest deprecations/form-control-label-props <path>
1103
1103
  npx @mui/codemod@latest deprecations/list-item-props <path>
1104
1104
  ```
1105
1105
 
1106
- #### `grid-props`
1107
-
1108
- ```diff
1109
- <Grid
1110
- - wrap="nowrap"
1111
- + flexWrap="nowrap"
1112
- />
1113
- ```
1114
-
1115
- ```bash
1116
- npx @mui/codemod@latest deprecations/grid-props <path>
1117
- ```
1118
-
1119
1106
  #### `image-list-item-bar-classes`
1120
1107
 
1121
1108
  JS transforms:
@@ -17,7 +17,6 @@ var _circularProgressClasses = _interopRequireDefault(require("../circular-progr
17
17
  var _dividerProps = _interopRequireDefault(require("../divider-props"));
18
18
  var _filledInputProps = _interopRequireDefault(require("../filled-input-props"));
19
19
  var _formControlLabelProps = _interopRequireDefault(require("../form-control-label-props"));
20
- var _gridProps = _interopRequireDefault(require("../grid-props"));
21
20
  var _imageListItemBarClasses = _interopRequireDefault(require("../image-list-item-bar-classes"));
22
21
  var _inputBaseProps = _interopRequireDefault(require("../input-base-props"));
23
22
  var _inputProps = _interopRequireDefault(require("../input-props"));
@@ -47,7 +46,6 @@ function deprecationsAll(file, api, options) {
47
46
  file.source = (0, _dividerProps.default)(file, api, options);
48
47
  file.source = (0, _filledInputProps.default)(file, api, options);
49
48
  file.source = (0, _formControlLabelProps.default)(file, api, options);
50
- file.source = (0, _gridProps.default)(file, api, options);
51
49
  file.source = (0, _imageListItemBarClasses.default)(file, api, options);
52
50
  file.source = (0, _inputBaseProps.default)(file, api, options);
53
51
  file.source = (0, _inputProps.default)(file, api, options);
@@ -328,7 +328,7 @@ function AppSearch() {
328
328
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Shortcut, {
329
329
  children: [macOS ? '⌘' : 'Ctrl+', "K"]
330
330
  })]
331
- }), isOpen && /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.DocSearchModal, {
331
+ }), isOpen && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.DocSearchModal, {
332
332
  initialQuery: initialQuery,
333
333
  appId: 'TZGZ85B9TB',
334
334
  apiKey: '8177dfb3e2be72b241ffb8c5abafa899',
@@ -328,7 +328,7 @@ function AppSearch() {
328
328
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Shortcut, {
329
329
  children: [macOS ? '⌘' : 'Ctrl+', "K"]
330
330
  })]
331
- }), isOpen && /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.DocSearchModal, {
331
+ }), isOpen && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.DocSearchModal, {
332
332
  initialQuery: initialQuery,
333
333
  appId: 'TZGZ85B9TB',
334
334
  apiKey: '8177dfb3e2be72b241ffb8c5abafa899',
@@ -41,6 +41,7 @@ function transformer(file, api, options) {
41
41
  });
42
42
  const openTaggedNotHavingButtonProp = new Set();
43
43
  const openTaggedHavingButtonProp = new Set();
44
+ let addedListItemButton = false;
44
45
  // Rename components that have ListItem button to ListItemButton
45
46
  (0, _findComponentJSX.default)(j, {
46
47
  root,
@@ -50,6 +51,7 @@ function transformer(file, api, options) {
50
51
  // The ListItem has a button prop
51
52
  if (index !== -1) {
52
53
  openTaggedHavingButtonProp.add(elementPath.node.openingElement.name.name);
54
+ addedListItemButton = true;
53
55
  elementPath.node.openingElement.name.name = `ListItemButton`;
54
56
  elementPath.node.openingElement.attributes.splice(index, 1);
55
57
  } else {
@@ -81,9 +83,10 @@ function transformer(file, api, options) {
81
83
  }
82
84
  return false;
83
85
  }).remove();
84
- // If ListItemButton does not already exist, add it at the end
86
+
87
+ // If ListItemButton import does not already exist, add it at the end
85
88
  const imports = root.find(j.ImportDeclaration).filter(path => path.node.source.value === '@mui/material/ListItemButton');
86
- if (imports.length === 0) {
89
+ if (addedListItemButton && imports.length === 0) {
87
90
  const lastImport = root.find(j.ImportDeclaration).at(-1);
88
91
 
89
92
  // Insert the import for 'ListItemButton' after the last import declaration
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _ListItem = _interopRequireDefault(require("@component/ListItem"));
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _ListItem = _interopRequireDefault(require("@component/ListItem"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/codemod",
3
- "version": "6.0.1",
3
+ "version": "6.1.0",
4
4
  "bin": "./codemod.js",
5
5
  "private": false,
6
6
  "author": "MUI Team",
@@ -25,16 +25,16 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/core": "^7.25.2",
28
- "@babel/runtime": "^7.25.0",
29
- "@babel/traverse": "^7.25.3",
28
+ "@babel/runtime": "^7.25.6",
29
+ "@babel/traverse": "^7.25.6",
30
30
  "jscodeshift": "^0.16.1",
31
31
  "jscodeshift-add-imports": "^1.0.11",
32
- "postcss": "^8.4.41",
32
+ "postcss": "^8.4.45",
33
33
  "postcss-cli": "^11.0.0",
34
34
  "yargs": "^17.7.2"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/chai": "^4.3.17",
37
+ "@types/chai": "^4.3.19",
38
38
  "@types/jscodeshift": "0.11.11",
39
39
  "chai": "^4.5.0"
40
40
  },
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = transformer;
8
- var _findComponentJSX = _interopRequireDefault(require("../../util/findComponentJSX"));
9
- /**
10
- * @param {import('jscodeshift').FileInfo} file
11
- * @param {import('jscodeshift').API} api
12
- */
13
- function transformer(file, api, options) {
14
- const j = api.jscodeshift;
15
- const root = j(file.source);
16
- const printOptions = options.printOptions;
17
- const filterJSXAttr = (attr, name) => attr.type === 'JSXAttribute' && attr.name.name === name;
18
- (0, _findComponentJSX.default)(j, {
19
- root,
20
- componentName: 'Grid'
21
- }, gridElement => {
22
- const attrs = gridElement.node.openingElement.attributes;
23
- const wrapPropIndex = attrs.findIndex(attr => filterJSXAttr(attr, 'wrap'));
24
- if (wrapPropIndex !== -1) {
25
- if (attrs.findIndex(attr => filterJSXAttr(attr, 'flexWrap')) !== -1) {
26
- attrs.splice(wrapPropIndex, 1);
27
- } else {
28
- attrs[wrapPropIndex].name.name = 'flexWrap';
29
- }
30
- }
31
- });
32
- root.find(j.ObjectProperty, {
33
- key: {
34
- name: 'MuiGrid'
35
- }
36
- }).forEach(path => {
37
- const defaultProps = path.value.value.properties.find(({
38
- key
39
- }) => key.name === 'defaultProps');
40
- const props = defaultProps.value.properties;
41
- const wrapPropIndex = props.findIndex(prop => prop.key.name === 'wrap');
42
- if (wrapPropIndex !== -1) {
43
- if (props.findIndex(prop => prop.key.name === 'flexWrap') !== -1) {
44
- props.splice(wrapPropIndex, 1);
45
- } else {
46
- props[wrapPropIndex].key.name = 'flexWrap';
47
- }
48
- }
49
- });
50
- return root.toSource(printOptions);
51
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "default", {
8
- enumerable: true,
9
- get: function () {
10
- return _gridProps.default;
11
- }
12
- });
13
- var _gridProps = _interopRequireDefault(require("./grid-props"));
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
5
- var _material = require("@mui/material");
6
- var _jsxRuntime = require("react/jsx-runtime");
7
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
8
- wrap: "wrap-reverse"
9
- });
10
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
11
- wrap: "wrap-reverse"
12
- });
13
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
14
- wrap: "wrap-reverse",
15
- flexWrap: "wrap"
16
- });
17
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
18
- wrap: "wrap-reverse",
19
- flexWrap: "wrap"
20
- });
21
-
22
- // should skip non MUI components
23
- /*#__PURE__*/(0, _jsxRuntime.jsx)(NonMuiGrid, {
24
- wrap: "wrap-reverse"
25
- });
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
5
- var _material = require("@mui/material");
6
- var _jsxRuntime = require("react/jsx-runtime");
7
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
8
- flexWrap: "wrap-reverse"
9
- });
10
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
11
- flexWrap: "wrap-reverse"
12
- });
13
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
14
- flexWrap: "wrap"
15
- });
16
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
17
- flexWrap: "wrap"
18
- });
19
-
20
- // should skip non MUI components
21
- /*#__PURE__*/(0, _jsxRuntime.jsx)(NonMuiGrid, {
22
- wrap: "wrap-reverse"
23
- });
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- fn({
4
- MuiGrid: {
5
- defaultProps: {
6
- wrap: 'wrap'
7
- }
8
- }
9
- });
10
- fn({
11
- MuiGrid: {
12
- defaultProps: {
13
- wrap: 'wrap-reverse'
14
- }
15
- }
16
- });
17
- fn({
18
- MuiGrid: {
19
- defaultProps: {
20
- wrap: 'wrap-reverse',
21
- flexWrap: 'wrap'
22
- }
23
- }
24
- });
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- fn({
4
- MuiGrid: {
5
- defaultProps: {
6
- flexWrap: 'wrap'
7
- }
8
- }
9
- });
10
- fn({
11
- MuiGrid: {
12
- defaultProps: {
13
- flexWrap: 'wrap-reverse'
14
- }
15
- }
16
- });
17
- fn({
18
- MuiGrid: {
19
- defaultProps: {
20
- flexWrap: 'wrap'
21
- }
22
- }
23
- });