From 141d0e1796b7ebb24aeae0a874b7e0a1899005d2 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Tue, 24 Feb 2026 10:25:40 +0100 Subject: [PATCH] chore: migrate to `oxfmt` --- .github/prettierrc.json | 14 -- .oxfmtrc.json | 14 ++ CONTRIBUTING.md | 39 +-- package.json | 6 +- packages/app/example/src/App.tsx | 10 +- packages/app/example/src/RemoteDebugging.tsx | 2 +- packages/app/example/src/core.ts | 4 +- packages/app/package.json | 8 +- yarn.lock | 238 ++++++++++++++++--- 9 files changed, 251 insertions(+), 84 deletions(-) delete mode 100644 .github/prettierrc.json create mode 100644 .oxfmtrc.json diff --git a/.github/prettierrc.json b/.github/prettierrc.json deleted file mode 100644 index 28e396016..000000000 --- a/.github/prettierrc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "plugins": ["prettier-plugin-organize-imports"], - "trailingComma": "es5", - "endOfLine": "auto", - "overrides": [ - { - "files": ["*.md", "*.mdx"], - "options": { - "organizeImportsSkipDestructiveCodeActions": true, - "proseWrap": "always" - } - } - ] -} diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 000000000..fe1618727 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,14 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 80, + "trailingComma": "es5", + "ignorePatterns": [], + "sortImports": { + "groups": [ + ["builtin", "external"], + ["internal", "subpath"] + ], + "newlinesBetween": false + }, + "sortPackageJson": true +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5a98c2baf..06b8780fb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -365,33 +365,20 @@ entries. -[Dependency Dashboard]: - https://github.com/microsoft/react-native-test-app/issues/492 +[Dependency Dashboard]: https://github.com/microsoft/react-native-test-app/issues/492 [Patches page]: https://github.com/microsoft/react-native-test-app/wiki/Patches [Renovate]: https://docs.renovatebot.com -[`@rnx-kit/align-deps`]: - https://github.com/microsoft/rnx-kit/tree/main/packages/align-deps#contribution -[`@rnx-kit/react-native-host`]: - https://github.com/microsoft/rnx-kit/tree/main/packages/react-native-host#readme -[`dependencies.gradle`]: - https://github.com/microsoft/react-native-test-app/blob/trunk/android/dependencies.gradle -[`generate-schema.mjs`]: - https://github.com/microsoft/react-native-test-app/blob/trunk/scripts/internal/generate-schema.mjs -[`package.json`]: - https://github.com/microsoft/react-native-test-app/blob/trunk/package.json -[`react-native-releases`]: - https://github.com/reactwg/react-native-releases/discussions -[`scripts/docs/`]: - https://github.com/microsoft/react-native-test-app/tree/trunk/scripts/docs -[`test:matrix`]: - https://github.com/microsoft/react-native-test-app/blob/trunk/scripts/testing/test-matrix.mjs +[`@rnx-kit/align-deps`]: https://github.com/microsoft/rnx-kit/tree/main/packages/align-deps#contribution +[`@rnx-kit/react-native-host`]: https://github.com/microsoft/rnx-kit/tree/main/packages/react-native-host#readme +[`dependencies.gradle`]: https://github.com/microsoft/react-native-test-app/blob/trunk/android/dependencies.gradle +[`generate-schema.mjs`]: https://github.com/microsoft/react-native-test-app/blob/trunk/scripts/internal/generate-schema.mjs +[`package.json`]: https://github.com/microsoft/react-native-test-app/blob/trunk/package.json +[`react-native-releases`]: https://github.com/reactwg/react-native-releases/discussions +[`scripts/docs/`]: https://github.com/microsoft/react-native-test-app/tree/trunk/scripts/docs +[`test:matrix`]: https://github.com/microsoft/react-native-test-app/blob/trunk/scripts/testing/test-matrix.mjs [`uuid`]: https://github.com/uuidjs/uuid -[commitlint-lite]: - https://github.com/microsoft/rnx-kit/tree/main/incubator/commitlint-lite#readme +[commitlint-lite]: https://github.com/microsoft/rnx-kit/tree/main/incubator/commitlint-lite#readme [conventional commit format]: https://conventionalcommits.org -[every Monday morning]: - https://github.com/microsoft/react-native-test-app/blob/trunk/.github/renovate.json -[link to the issue]: - https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue -[supported versions table]: - https://github.com/microsoft/react-native-test-app/wiki#react-native-versions +[every Monday morning]: https://github.com/microsoft/react-native-test-app/blob/trunk/.github/renovate.json +[link to the issue]: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue +[supported versions table]: https://github.com/microsoft/react-native-test-app/wiki#react-native-versions diff --git a/package.json b/package.json index 9ed0c9dee..cd9e5498e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "scripts": { "format": "nx run-many --target format:c,format:js,format:swift", "lint": "nx run-many --target lint:js,lint:kt,lint:rb,lint:swift", - "format:js": "prettier --write --log-level error $(git ls-files '.github/*.json' '.github/*.yml' '.yarn/plugins/*' '.yarnrc.yml' 'CONTRIBUTING.md' 'README.md' 'nx.json')", + "format:js": "oxfmt $(git ls-files '.github/*.json' '.github/*.yml' '.yarn/plugins/*' '.yarnrc.yml' 'CONTRIBUTING.md' 'README.md' 'nx.json')", "lint:commit": "git log --format='%s' origin/trunk..HEAD | tail -1 | npx @rnx-kit/commitlint-lite@2.0.0", "release-notes": "node scripts/release-notes.mts", "show-affected": "node scripts/affected.mts" @@ -28,8 +28,7 @@ "js-yaml": "^4.1.0", "minimatch": "^10.0.0", "nx": "^21.0.0", - "prettier": "^3.0.0", - "prettier-plugin-organize-imports": "^4.1.0", + "oxfmt": "^0.35.0", "typescript": "^5.0.0" }, "engines": { @@ -93,7 +92,6 @@ "packages/app", "packages/app/example" ], - "prettier": "./.github/prettierrc.json", "rnx-kit": { "lint": { "lockfile": { diff --git a/packages/app/example/src/App.tsx b/packages/app/example/src/App.tsx index 6a61b08b5..f43c2cdbf 100644 --- a/packages/app/example/src/App.tsx +++ b/packages/app/example/src/App.tsx @@ -7,17 +7,17 @@ import { useColorScheme, View, } from "react-native"; -import { Feature } from "./Feature"; -import { LocalStorageStatus } from "./LocalStorage"; -import { RemoteDebugging } from "./RemoteDebugging"; -import { SafeAreaView } from "./SafeAreaView"; -import { Separator } from "./Separator"; import { getHermesVersion, isBridgeless, isFabricInstance, ReactNativeVersion, } from "./core"; +import { Feature } from "./Feature"; +import { LocalStorageStatus } from "./LocalStorage"; +import { RemoteDebugging } from "./RemoteDebugging"; +import { SafeAreaView } from "./SafeAreaView"; +import { Separator } from "./Separator"; import { useStyles } from "./styles"; declare global { diff --git a/packages/app/example/src/RemoteDebugging.tsx b/packages/app/example/src/RemoteDebugging.tsx index 2540f2ef2..2a3b688bc 100644 --- a/packages/app/example/src/RemoteDebugging.tsx +++ b/packages/app/example/src/RemoteDebugging.tsx @@ -1,7 +1,7 @@ import React from "react"; import { NativeModules, View } from "react-native"; -import { Feature } from "./Feature"; import { getHermesVersion, isBridgeless } from "./core"; +import { Feature } from "./Feature"; import { useStyles } from "./styles"; function isRemoteDebuggingAvailable(): boolean { diff --git a/packages/app/example/src/core.ts b/packages/app/example/src/core.ts index db9eaccbf..7a885223d 100644 --- a/packages/app/example/src/core.ts +++ b/packages/app/example/src/core.ts @@ -59,8 +59,8 @@ export function isFabricInstance( return Boolean( // @ts-expect-error — https://github.com/facebook/react-native/blob/0.76-stable/packages/react-native/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js ref["__nativeTag"] || - // @ts-expect-error — https://github.com/facebook/react-native/blob/0.76-stable/packages/react-native/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js - ref["_internalInstanceHandle"]?.stateNode?.canonical + // @ts-expect-error — https://github.com/facebook/react-native/blob/0.76-stable/packages/react-native/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js + ref["_internalInstanceHandle"]?.stateNode?.canonical ); } diff --git a/packages/app/package.json b/packages/app/package.json index 863b72cfe..4c68898f9 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -68,7 +68,7 @@ }, "scripts": { "format:c": "clang-format -i $(git ls-files '*.cpp' '*.h' '*.m' '*.mm')", - "format:js": "prettier --write --log-level error $(git ls-files '*.[cm][jt]s' '*.[jt]s' '*.tsx' '*.yml' 'README.md' 'test/**/*.json')", + "format:js": "oxfmt $(git ls-files '*.[cm][jt]s' '*.[jt]s' '*.tsx' '*.yml' 'README.md' 'test/**/*.json')", "format:swift": "swiftformat $(git ls-files '*.swift')", "generate:code": "node scripts/internal/generate-manifest.mts", "generate:docs": "node scripts/internal/generate-manifest-docs.mts", @@ -143,8 +143,7 @@ "js-yaml": "^4.1.0", "memfs": "^4.0.0", "minimatch": "^10.0.0", - "prettier": "^3.0.0", - "prettier-plugin-organize-imports": "^4.1.0", + "oxfmt": "^0.35.0", "react": "19.1.0", "react-native": "^0.81.0", "react-native-macos": "^0.81.1", @@ -160,6 +159,5 @@ "macos": "react-native-macos", "visionos": "@callstack/react-native-visionos", "windows": "react-native-windows" - }, - "prettier": "../../.github/prettierrc.json" + } } diff --git a/yarn.lock b/yarn.lock index 7b04684c2..e30b341c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2657,8 +2657,7 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^10.0.0" nx: "npm:^21.0.0" - prettier: "npm:^3.0.0" - prettier-plugin-organize-imports: "npm:^4.1.0" + oxfmt: "npm:^0.35.0" typescript: "npm:^5.0.0" languageName: unknown linkType: soft @@ -3082,6 +3081,139 @@ __metadata: languageName: node linkType: hard +"@oxfmt/binding-android-arm-eabi@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-android-arm-eabi@npm:0.35.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-android-arm64@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-android-arm64@npm:0.35.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-darwin-arm64@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-darwin-arm64@npm:0.35.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-darwin-x64@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-darwin-x64@npm:0.35.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxfmt/binding-freebsd-x64@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-freebsd-x64@npm:0.35.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm-gnueabihf@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.35.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm-musleabihf@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.35.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm64-gnu@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.35.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-arm64-musl@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.35.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-linux-ppc64-gnu@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.35.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-riscv64-gnu@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.35.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-riscv64-musl@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.35.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-linux-s390x-gnu@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.35.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-x64-gnu@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.35.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxfmt/binding-linux-x64-musl@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-linux-x64-musl@npm:0.35.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxfmt/binding-openharmony-arm64@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-openharmony-arm64@npm:0.35.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-arm64-msvc@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.35.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-ia32-msvc@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.35.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxfmt/binding-win32-x64-msvc@npm:0.35.0": + version: 0.35.0 + resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.35.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -11617,6 +11749,75 @@ __metadata: languageName: node linkType: hard +"oxfmt@npm:^0.35.0": + version: 0.35.0 + resolution: "oxfmt@npm:0.35.0" + dependencies: + "@oxfmt/binding-android-arm-eabi": "npm:0.35.0" + "@oxfmt/binding-android-arm64": "npm:0.35.0" + "@oxfmt/binding-darwin-arm64": "npm:0.35.0" + "@oxfmt/binding-darwin-x64": "npm:0.35.0" + "@oxfmt/binding-freebsd-x64": "npm:0.35.0" + "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.35.0" + "@oxfmt/binding-linux-arm-musleabihf": "npm:0.35.0" + "@oxfmt/binding-linux-arm64-gnu": "npm:0.35.0" + "@oxfmt/binding-linux-arm64-musl": "npm:0.35.0" + "@oxfmt/binding-linux-ppc64-gnu": "npm:0.35.0" + "@oxfmt/binding-linux-riscv64-gnu": "npm:0.35.0" + "@oxfmt/binding-linux-riscv64-musl": "npm:0.35.0" + "@oxfmt/binding-linux-s390x-gnu": "npm:0.35.0" + "@oxfmt/binding-linux-x64-gnu": "npm:0.35.0" + "@oxfmt/binding-linux-x64-musl": "npm:0.35.0" + "@oxfmt/binding-openharmony-arm64": "npm:0.35.0" + "@oxfmt/binding-win32-arm64-msvc": "npm:0.35.0" + "@oxfmt/binding-win32-ia32-msvc": "npm:0.35.0" + "@oxfmt/binding-win32-x64-msvc": "npm:0.35.0" + tinypool: "npm:2.1.0" + dependenciesMeta: + "@oxfmt/binding-android-arm-eabi": + optional: true + "@oxfmt/binding-android-arm64": + optional: true + "@oxfmt/binding-darwin-arm64": + optional: true + "@oxfmt/binding-darwin-x64": + optional: true + "@oxfmt/binding-freebsd-x64": + optional: true + "@oxfmt/binding-linux-arm-gnueabihf": + optional: true + "@oxfmt/binding-linux-arm-musleabihf": + optional: true + "@oxfmt/binding-linux-arm64-gnu": + optional: true + "@oxfmt/binding-linux-arm64-musl": + optional: true + "@oxfmt/binding-linux-ppc64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-gnu": + optional: true + "@oxfmt/binding-linux-riscv64-musl": + optional: true + "@oxfmt/binding-linux-s390x-gnu": + optional: true + "@oxfmt/binding-linux-x64-gnu": + optional: true + "@oxfmt/binding-linux-x64-musl": + optional: true + "@oxfmt/binding-openharmony-arm64": + optional: true + "@oxfmt/binding-win32-arm64-msvc": + optional: true + "@oxfmt/binding-win32-ia32-msvc": + optional: true + "@oxfmt/binding-win32-x64-msvc": + optional: true + bin: + oxfmt: bin/oxfmt + checksum: 10c0/9be372a992e064df7be40dc22b0f7c794a11a580caeab77670fde0337a1f5483c58dfaaf7ab19d4fe9808a67375fc1db29ab19ad4652e9571df150ca33c0e495 + languageName: node + linkType: hard + "p-defer@npm:^1.0.0": version: 1.0.0 resolution: "p-defer@npm:1.0.0" @@ -12006,29 +12207,6 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-organize-imports@npm:^4.1.0": - version: 4.3.0 - resolution: "prettier-plugin-organize-imports@npm:4.3.0" - peerDependencies: - prettier: ">=2.0" - typescript: ">=2.9" - vue-tsc: ^2.1.0 || 3 - peerDependenciesMeta: - vue-tsc: - optional: true - checksum: 10c0/57e5a3e611f1da6614fe1228d306b9a361d9249140abfdfcf21cffc9de13bda204c01f44bed0396786269541b63e12b05e1eab03e43d2e201320e4211af88bc6 - languageName: node - linkType: hard - -"prettier@npm:^3.0.0": - version: 3.6.2 - resolution: "prettier@npm:3.6.2" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/488cb2f2b99ec13da1e50074912870217c11edaddedeadc649b1244c749d15ba94e846423d062e2c4c9ae683e2d65f754de28889ba06e697ac4f988d44f45812 - languageName: node - linkType: hard - "pretty-format@npm:30.0.5": version: 30.0.5 resolution: "pretty-format@npm:30.0.5" @@ -12360,8 +12538,7 @@ __metadata: js-yaml: "npm:^4.1.0" memfs: "npm:^4.0.0" minimatch: "npm:^10.0.0" - prettier: "npm:^3.0.0" - prettier-plugin-organize-imports: "npm:^4.1.0" + oxfmt: "npm:^0.35.0" prompts: "npm:^2.4.0" react: "npm:19.1.0" react-native: "npm:^0.81.0" @@ -14073,6 +14250,13 @@ __metadata: languageName: node linkType: hard +"tinypool@npm:2.1.0": + version: 2.1.0 + resolution: "tinypool@npm:2.1.0" + checksum: 10c0/9fb1c760558c6264e0f4cfde96a63b12450b43f1730fbe6274aa24ddbdf488745c08924d0dea7a1303b47d555416a6415f2113898c69b6ecf731e75ac95238a5 + languageName: node + linkType: hard + "tmp@npm:~0.2.1": version: 0.2.4 resolution: "tmp@npm:0.2.4"