Skip to content

Modernize Builder Bob and migrate package to ESM-only - #767

Open
NicooleT wants to merge 16 commits into
mainfrom
nicole/updateBobBuilderAndModernePackageJson
Open

Modernize Builder Bob and migrate package to ESM-only#767
NicooleT wants to merge 16 commits into
mainfrom
nicole/updateBobBuilderAndModernePackageJson

Conversation

@NicooleT

@NicooleT NicooleT commented Aug 31, 2026

Copy link
Copy Markdown

Summary

  • Upgrade react-native-builder-bob from 0.23.2 to 0.43.0.
  • Publish ESM JavaScript and TypeScript declarations only.
  • Add modern package.json exports for: react-native-safe-area-context, react-native-safe-area-context/jest/mock, react-native-safe-area-context/package.json
  • Add a Metro source condition for developing the example app directly from src.
  • Add a dedicated TypeScript build configuration that excludes tests and development files.
  • Remove the legacy CommonJS build target and root Jest mock shims.
  • Exclude stale CommonJS and unnecessary build files from npm packages.
  • Rename native component specifications to the *NativeComponent.ts convention so Builder Bob preserves the Codegen type information.

Nicoole and others added 15 commits August 14, 2026 17:26
Set AsyncStorage KSP to 2.2.10-2.0.2 in gradle.properties matching Kotlin 2.2.10.
Use the Fabric-specific event dispatcher overload available in RN 0.82.
Update the peer dependency and compatibility docs, and add an RN 0.82
Android compilation check to CI.
- Replaced Prettier with Oxfmt 0.65.0 while preserving the existing formatting output.
- Upgraded TypeScript from 5.9 to 7.0.2, which uses the native Go-based compiler.
- Migrated root, example, and docs projects.
- Preserved existing React Native, React Hooks, Jest, Testing Library, Flow, and core lint safeguards.
- Replaced obsolete ESLint/Prettier configs with .oxlintrc.json and .oxfmtrc.json.
- Updated package scripts, dependencies, TypeScript configs, and all three Yarn lockfiles.
- Adjusted Docusaurus’s TypeScript config because its preset still used the removed baseUrl option.
- Made the example’s lint command delegate to the root toolchain.
- Removed stale ESLint entries and config files.
Package exports now provide ESM runtime and TypeScript declarations, including jest/mock.
Added an explicit !lib/commonjs publish exclusion.
Added [tsconfig.build.json](/Users/nicoolet/react-native-safe-area-context/tsconfig.build.json).
Updated [Metro’s source condition](/Users/nicoolet/react-native-safe-area-context/example/metro.config.js).
Removed legacy CommonJS Jest shims.
Regenerated yarn.lock.
@NicooleT NicooleT self-assigned this Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant