Skip to content

Verify prebuild metadata and JS addon precedence - #455

Open
huytdps13400 wants to merge 1 commit into
callstackincubator:mainfrom
huytdps13400:fix/424-verify-prebuild-fixtures
Open

Verify prebuild metadata and JS addon precedence#455
huytdps13400 wants to merge 1 commit into
callstackincubator:mainfrom
huytdps13400:fix/424-verify-prebuild-fixtures

Conversation

@huytdps13400

Copy link
Copy Markdown

Summary

  • add the missing sibling .node fixture to the JS require precedence test
  • preserve Node resolution when an extensionless require resolves to JS/JSON before a native addon
  • parse every generated framework Info.plist and verify CFBundleExecutable plus the expected escaped CFBundleIdentifier
  • add portable plist verifier unit tests to the root test gate
  • declare the existing plist parser directly in the package that uses it and add a patch changeset

The completed Babel fixture exposed a real bug: current code transformed require("./my-addon") into requireNodeAddon(...) even when my-addon.js existed. This PR fixes that precedence rather than weakening the new test.

Verification

  • RED: completed Babel fixture failed because it emitted requireNodeAddon
  • focused Babel plugin suite: 10/10
  • focused plist verifier suite: 3/3
  • pnpm run build
  • pnpm test: 88 tests passed (62 host, 20 gyp-to-cmake, 3 cmake-rn, 3 plist verifier)
  • ESLint on every changed TypeScript file
  • pnpm run prettier:check
  • pnpm run depcheck
  • pnpm run publint
  • frozen lockfile validation with Node 24 / pnpm 10.33

Full root lint additionally requires generated native typings from the Rust/clang-format bootstrap; those toolchains are not installed locally. The changed files are lint-clean, and CI runs the documented bootstrap before its root lint job.

Fixes #424

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