@mui/codemod 5.11.7 → 5.11.11

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
@@ -62,6 +62,19 @@ npx @mui/codemod <transform> <path> --jscodeshift="--printOptions='{\"quote\":\"
62
62
 
63
63
  ### v5.0.0
64
64
 
65
+ #### `base-hook-imports`
66
+
67
+ Updates the sources of the imports of the MUI Base hooks to adapt to the new directories of the hooks.
68
+
69
+ ```diff
70
+ - import { useBadge } from '@mui/base/BadgeUnstyled';
71
+ + import useBadge from '@mui/base/useBadge';
72
+ ```
73
+
74
+ ```sh
75
+ npx @mui/codemod v5.0.0/base-hook-imports <path>
76
+ ```
77
+
65
78
  #### `joy-rename-classname-prefix`
66
79
 
67
80
  Renames the classname prefix from `'Joy'` to `'Mui'` for Joy UI components.
package/codemod.js CHANGED
File without changes
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ const capitalize = str => {
8
+ return str.charAt(0).toUpperCase() + str.slice(1);
9
+ };
10
+ const movedTypeExports = [
11
+ // Slider
12
+ 'Mark',
13
+ // Select
14
+ 'SelectOption', 'SelectChild', 'isOptionGroup', 'SelectOptionGroup', 'SelectChangeEventType',
15
+ // Listbox
16
+ 'OptionState', 'UseListboxPropsWithDefaults', 'FocusManagementType', 'ListboxState', 'ListboxAction', 'ListboxReducer', 'ListboxReducerAction',
17
+ // Autocomplete
18
+ 'createFilterOptions', 'FilterOptionsState', 'AutocompleteFreeSoloValueMapping', 'AutocompleteValue', 'UseAutocompleteProps', 'AutocompleteGroupedOption', 'CreateFilterOptionsConfig', 'FilterOptionsState', 'AutocompleteInputChangeReason', 'AutocompleteCloseReason', 'AutocompleteGetTagProps'];
19
+
20
+ /**
21
+ * @param {import('jscodeshift').FileInfo} file
22
+ * @param {import('jscodeshift').API} api
23
+ */
24
+ function transformer(file, api, options) {
25
+ const j = api.jscodeshift;
26
+ const root = j(file.source);
27
+ const printOptions = options.printOptions || {
28
+ quote: 'single'
29
+ };
30
+ root.find(j.ImportDeclaration).filter(path => {
31
+ const sourceVal = path.node.source.value;
32
+ return sourceVal.startsWith('@mui/base/') && sourceVal.match('Unstyled');
33
+ }) // Process only Base components
34
+ .forEach(path => {
35
+ // scenario 1: `@mui/base/<Component>Unstyled/use<Component>`
36
+ // e.g., `@mui/base/SelectUnstyled/useSelect`
37
+ const sourceVal = path.node.source.value;
38
+ // replace `@mui/base/SelectUnstyled/useSelect` with `@mui/base/useSelect`
39
+ if (sourceVal.replace(/@mui\/base\/([a-zA-Z]+)Unstyled/, '') !== '') {
40
+ path.node.source.value = sourceVal.replace(/@mui\/base\/([a-zA-Z]+)Unstyled\/([a-zA-Z]+)/, '@mui/base/$2');
41
+ return;
42
+ }
43
+
44
+ // scenario 2: @mui/base/<Component>Unstyled
45
+ const specifiersForHook = [];
46
+ const filteredSpecifiers = [];
47
+ const hookName = sourceVal.replace(/@mui\/base\/([a-zA-Z]+)Unstyled/, 'use$1');
48
+ path.node.specifiers.forEach(elementNode => {
49
+ var _elementNode$imported;
50
+ if (elementNode.type !== 'ImportSpecifier' || !((_elementNode$imported = elementNode.imported) != null && _elementNode$imported.name)) {
51
+ filteredSpecifiers.push(elementNode);
52
+ return;
53
+ }
54
+ const importName = elementNode.imported.name;
55
+ const localName = elementNode.local.name;
56
+ if (hookName === importName) {
57
+ // hook
58
+ specifiersForHook.push(j.importDefaultSpecifier(j.identifier(localName)));
59
+ } else if (
60
+ // types that no longer exist in `...Unstyled`
61
+ movedTypeExports.includes(importName) || importName.startsWith(capitalize(hookName)) && (importName.endsWith('SlotProps') || importName.endsWith('Parameters') || importName.endsWith('ReturnValue'))) {
62
+ specifiersForHook.push(j.importSpecifier(j.identifier(importName), elementNode.local));
63
+ } else {
64
+ filteredSpecifiers.push(elementNode);
65
+ }
66
+ });
67
+ path.node.specifiers = filteredSpecifiers;
68
+ if (specifiersForHook.length === 0) {
69
+ return;
70
+ }
71
+ const hookImportDeclaration = j.importDeclaration(specifiersForHook, j.literal(`@mui/base/${hookName}`));
72
+ if (filteredSpecifiers.length > 0) {
73
+ path.insertAfter(hookImportDeclaration);
74
+ } else {
75
+ path.replace(hookImportDeclaration);
76
+ }
77
+ });
78
+ return root.toSource(printOptions);
79
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _AutocompleteUnstyled = require("@mui/base/AutocompleteUnstyled");
5
+ var _BadgeUnstyled = require("@mui/base/BadgeUnstyled");
6
+ var _ButtonUnstyled = require("@mui/base/ButtonUnstyled");
7
+ var _InputUnstyled = require("@mui/base/InputUnstyled");
8
+ var _SelectUnstyled = _interopRequireWildcard(require("@mui/base/SelectUnstyled"));
9
+ var _OptionUnstyled = require("@mui/base/OptionUnstyled");
10
+ var _useListbox = _interopRequireDefault(require("@mui/base/ListboxUnstyled/useListbox"));
11
+ var _SwitchUnstyled = require("@mui/base/SwitchUnstyled");
12
+ 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); }
13
+ 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,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _useAutocomplete = _interopRequireDefault(require("@mui/base/useAutocomplete"));
5
+ var _useBadge = _interopRequireDefault(require("@mui/base/useBadge"));
6
+ var _useButton = _interopRequireDefault(require("@mui/base/useButton"));
7
+ var _useInput = _interopRequireDefault(require("@mui/base/useInput"));
8
+ var _SelectUnstyled = _interopRequireWildcard(require("@mui/base/SelectUnstyled"));
9
+ var _useSelect = _interopRequireWildcard(require("@mui/base/useSelect"));
10
+ var _useOption = require("@mui/base/useOption");
11
+ var _useListbox = _interopRequireDefault(require("@mui/base/useListbox"));
12
+ var _useSwitch = _interopRequireDefault(require("@mui/base/useSwitch"));
13
+ 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); }
14
+ 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; }
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _reactDom = require("react-dom");
11
11
  var _helpers = require("docs/src/modules/utils/helpers");
12
- var _server = _interopRequireDefault(require("react-dom/server"));
12
+ var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _link = _interopRequireDefault(require("next/link"));
15
15
  var _router = require("next/router");
@@ -289,7 +289,7 @@ function AppSearch() {
289
289
  const dropDown = document.querySelector('.DocSearch-Dropdown');
290
290
  const isExisting = document.querySelector('.DocSearch-NewStartScreen');
291
291
  if (dropDown && !isExisting) {
292
- dropDown.insertAdjacentHTML('beforeend', _server.default.renderToStaticMarkup(_NewStartScreen || (_NewStartScreen = /*#__PURE__*/(0, _jsxRuntime.jsx)(NewStartScreen, {}))));
292
+ dropDown.insertAdjacentHTML('beforeend', ReactDOMServer.renderToStaticMarkup(_NewStartScreen || (_NewStartScreen = /*#__PURE__*/(0, _jsxRuntime.jsx)(NewStartScreen, {}))));
293
293
  }
294
294
  };
295
295
  // add transition to Modal
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _reactDom = require("react-dom");
11
11
  var _helpers = require("docs/src/modules/utils/helpers");
12
- var _server = _interopRequireDefault(require("react-dom/server"));
12
+ var ReactDOMServer = _interopRequireWildcard(require("react-dom/server"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _link = _interopRequireDefault(require("next/link"));
15
15
  var _router = require("next/router");
@@ -289,7 +289,7 @@ function AppSearch() {
289
289
  const dropDown = document.querySelector('.DocSearch-Dropdown');
290
290
  const isExisting = document.querySelector('.DocSearch-NewStartScreen');
291
291
  if (dropDown && !isExisting) {
292
- dropDown.insertAdjacentHTML('beforeend', _server.default.renderToStaticMarkup(_NewStartScreen || (_NewStartScreen = /*#__PURE__*/(0, _jsxRuntime.jsx)(NewStartScreen, {}))));
292
+ dropDown.insertAdjacentHTML('beforeend', ReactDOMServer.renderToStaticMarkup(_NewStartScreen || (_NewStartScreen = /*#__PURE__*/(0, _jsxRuntime.jsx)(NewStartScreen, {}))));
293
293
  }
294
294
  };
295
295
  // add transition to Modal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/codemod",
3
- "version": "5.11.7",
3
+ "version": "5.11.11",
4
4
  "bin": "./codemod.js",
5
5
  "private": false,
6
6
  "author": "MUI Team",
@@ -30,12 +30,12 @@
30
30
  "url": "https://opencollective.com/mui"
31
31
  },
32
32
  "dependencies": {
33
- "@babel/core": "^7.20.7",
34
- "@babel/runtime": "^7.20.7",
35
- "@babel/traverse": "^7.20.10",
33
+ "@babel/core": "^7.21.0",
34
+ "@babel/runtime": "^7.21.0",
35
+ "@babel/traverse": "^7.21.2",
36
36
  "jscodeshift": "^0.13.1",
37
37
  "jscodeshift-add-imports": "^1.0.10",
38
- "yargs": "^17.6.2"
38
+ "yargs": "^17.7.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/jscodeshift": "0.11.5"