mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: `jscodeshift` is only used in one module (`src/generators/components/GenerateViewConfigJs.js`, but depends on a rather complex dependency chain and has a rather large maintenance burden relative to what it's used for and the value it adds in the codebase. Since the `GenerateViewConfigJs` module creates simple templates, using `babel/core` (and implicitly `babel/template` and `babel/types`) is a lot simpler and changes little code. The only change this introduces to the output are formatting changes (`singleQuote` and `trailingCommas` options are discarded). The code is otherwise functionally identical. ## Changelog: [INTERNAL] [CHANGED] - Drop jscodeshift dependency from react-native/codegen Pull Request resolved: https://github.com/facebook/react-native/pull/49641 Test Plan: This was tested against a React Native build with the `react-native/babel-plugin-codegen` plugina active and using the snapshots in the repo itself. While the snapshots have changed in formatting, none of the outputs change the code's AST. <details> <summary> Example output from <code>react-native/babel-plugin-codegen</code> to supplement the snapshot tests </summary> This is the example bundling output of `AndroidSwipeRefreshLayout`. This demonstrates that both the view config output and the `Commands` export continue to be generated correctly. ```js var _interopRequireDefault = require(_dependencyMap[0]); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.__INTERNAL_VIEW_CONFIG = exports.Commands = undefined; var _codegenNativeCommands = _interopRequireDefault(require(_dependencyMap[1])); var _codegenNativeComponent = _interopRequireDefault(require(_dependencyMap[2])); var React = _interopRequireWildcard(require(_dependencyMap[3])); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } var NativeComponentRegistry = require(_dependencyMap[4]); var _require = require(_dependencyMap[5]), ConditionallyIgnoredEventHandlers = _require.ConditionallyIgnoredEventHandlers; var _require2 = require(_dependencyMap[6]), dispatchCommand = _require2.dispatchCommand; var nativeComponentName = 'AndroidSwipeRefreshLayout'; var __INTERNAL_VIEW_CONFIG = exports.__INTERNAL_VIEW_CONFIG = { uiViewClassName: "AndroidSwipeRefreshLayout", directEventTypes: { topRefresh: { registrationName: "onRefresh" } }, validAttributes: { enabled: true, colors: { process: (req => 'default' in req ? req.default : req)(require(_dependencyMap[7])) }, progressBackgroundColor: { process: require(_dependencyMap[8]).default }, size: true, progressViewOffset: true, refreshing: true, ...ConditionallyIgnoredEventHandlers({ onRefresh: true }) } }; var _default = exports.default = NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); var Commands = exports.Commands = { setNativeRefreshing(ref, value) { dispatchCommand(ref, "setNativeRefreshing", [value]); } }; ``` </details> Reviewed By: yungsters Differential Revision: D70580474 Pulled By: elicwhite fbshipit-source-id: 85bc6578b685f19a1565ded8d7e56dc2a1ff1999
114 lines
4.4 KiB
JSON
114 lines
4.4 KiB
JSON
{
|
|
"name": "@react-native/monorepo",
|
|
"private": true,
|
|
"version": "1000.0.0",
|
|
"license": "MIT",
|
|
"packageManager": "yarn@1.22.22",
|
|
"scripts": {
|
|
"android": "yarn --cwd packages/rn-tester android",
|
|
"build-android": "./gradlew :packages:react-native:ReactAndroid:build",
|
|
"build": "node ./scripts/build/build.js",
|
|
"build-types": "node ./scripts/build/build-types.js",
|
|
"clang-format": "clang-format -i --glob=*/**/*.{h,cpp,m,mm}",
|
|
"clean": "node ./scripts/build/clean.js",
|
|
"flow-check": "flow check",
|
|
"flow": "flow",
|
|
"format-check": "prettier --list-different \"./**/*.{js,md,yml,ts,tsx}\"",
|
|
"format": "npm run prettier && npm run clang-format",
|
|
"featureflags": "yarn --cwd packages/react-native featureflags",
|
|
"lint-ci": "./.github/workflow-scripts/analyze_code.sh && yarn shellcheck",
|
|
"lint-java": "node ./scripts/lint-java.js",
|
|
"lint": "eslint .",
|
|
"prettier": "prettier --write \"./**/*.{js,md,yml,ts,tsx}\"",
|
|
"print-packages": "node ./scripts/monorepo/print",
|
|
"shellcheck": "./.github/workflow-scripts/analyze_scripts.sh",
|
|
"start": "yarn --cwd packages/rn-tester start",
|
|
"set-version": "node ./scripts/releases/set-version.js",
|
|
"test-android": "./gradlew :packages:react-native:ReactAndroid:test",
|
|
"test-ci": "jest --maxWorkers=2 --ci --reporters=\"default\" --reporters=\"jest-junit\"",
|
|
"test-e2e-local-clean": "node ./scripts/release-testing/test-e2e-local-clean.js",
|
|
"test-e2e-local": "node ./scripts/release-testing/test-e2e-local.js",
|
|
"test-ios": "./scripts/objc-test.sh test",
|
|
"test-typescript-offline": "dtslint --localTs node_modules/typescript/lib packages/react-native/types",
|
|
"test-typescript": "dtslint packages/react-native/types",
|
|
"test": "jest",
|
|
"fantom": "JS_DIR='..' yarn jest --config packages/react-native-fantom/config/jest.config.js",
|
|
"trigger-react-native-release": "node ./scripts/releases-local/trigger-react-native-release.js",
|
|
"update-lock": "npx yarn-deduplicate"
|
|
},
|
|
"workspaces": [
|
|
"packages/*",
|
|
"tools/*",
|
|
"!packages/helloworld"
|
|
],
|
|
"devDependencies": {
|
|
"@babel/core": "^7.25.2",
|
|
"@babel/eslint-parser": "^7.25.1",
|
|
"@babel/generator": "^7.25.0",
|
|
"@babel/plugin-syntax-typescript": "^7.25.4",
|
|
"@babel/plugin-transform-regenerator": "^7.24.7",
|
|
"@babel/preset-env": "^7.25.3",
|
|
"@babel/preset-flow": "^7.24.7",
|
|
"@definitelytyped/dtslint": "^0.0.127",
|
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
"@react-native/metro-babel-transformer": "0.79.0-main",
|
|
"@react-native/metro-config": "0.79.0-main",
|
|
"@tsconfig/node18": "1.0.1",
|
|
"@types/react": "^19.0.0",
|
|
"@typescript-eslint/parser": "^7.1.1",
|
|
"ansi-styles": "^4.2.1",
|
|
"babel-plugin-minify-dead-code-elimination": "^0.5.2",
|
|
"babel-plugin-syntax-hermes-parser": "0.25.1",
|
|
"babel-plugin-transform-define": "^2.1.4",
|
|
"babel-plugin-transform-flow-enums": "^0.0.2",
|
|
"chalk": "^4.0.0",
|
|
"clang-format": "^1.8.0",
|
|
"connect": "^3.6.5",
|
|
"debug": "^2.2.0",
|
|
"deep-equal": "1.1.1",
|
|
"eslint": "^8.57.0",
|
|
"eslint-config-prettier": "^8.5.0",
|
|
"eslint-plugin-babel": "^5.3.1",
|
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
"eslint-plugin-ft-flow": "^2.0.1",
|
|
"eslint-plugin-jest": "^27.9.0",
|
|
"eslint-plugin-jsx-a11y": "^6.6.0",
|
|
"eslint-plugin-lint": "^1.0.0",
|
|
"eslint-plugin-react": "^7.30.1",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"eslint-plugin-react-native": "^4.0.0",
|
|
"eslint-plugin-redundant-undefined": "^0.4.0",
|
|
"eslint-plugin-relay": "^1.8.3",
|
|
"flow-api-translator": "0.25.1",
|
|
"flow-bin": "^0.263.0",
|
|
"glob": "^7.1.1",
|
|
"hermes-eslint": "0.25.1",
|
|
"hermes-transform": "0.25.1",
|
|
"inquirer": "^7.1.0",
|
|
"jest": "^29.7.0",
|
|
"jest-diff": "^29.7.0",
|
|
"jest-junit": "^10.0.0",
|
|
"jest-snapshot": "^29.7.0",
|
|
"metro-babel-register": "^0.81.0",
|
|
"metro-memory-fs": "^0.81.0",
|
|
"metro-transform-plugins": "^0.81.0",
|
|
"micromatch": "^4.0.4",
|
|
"node-fetch": "^2.2.0",
|
|
"nullthrows": "^1.1.1",
|
|
"prettier": "2.8.8",
|
|
"prettier-plugin-hermes-parser": "0.25.1",
|
|
"react": "19.0.0",
|
|
"react-test-renderer": "19.0.0",
|
|
"rimraf": "^3.0.2",
|
|
"shelljs": "^0.8.5",
|
|
"signedsource": "^1.0.0",
|
|
"supports-color": "^7.1.0",
|
|
"tinybench": "^3.1.0",
|
|
"typescript": "5.0.4",
|
|
"ws": "^6.2.3"
|
|
},
|
|
"resolutions": {
|
|
"react-is": "19.0.0"
|
|
}
|
|
}
|