Skip to content

refactor(app-dist)!: migrate to TypeScript#8860

Open
MichaelVerdon wants to merge 22 commits intomainfrom
app-distribution-ts-migrations
Open

refactor(app-dist)!: migrate to TypeScript#8860
MichaelVerdon wants to merge 22 commits intomainfrom
app-distribution-ts-migrations

Conversation

@MichaelVerdon
Copy link
Copy Markdown
Collaborator

@MichaelVerdon MichaelVerdon commented Jan 27, 2026

Description

Related issues

Release Summary

Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • Yes
  • My change supports the following platforms;
    • Android
    • iOS
    • Other (macOS, web)
  • My change includes tests;
    • e2e tests added or updated in packages/\*\*/e2e
    • jest tests added or updated in packages/\*\*/__tests__
  • I have updated TypeScript types that are affected by my change.
  • This is a breaking change;
    • Yes
    • No

Test Plan


Think react-native-firebase is great? Please consider supporting the project with any of the below:


Note

Medium Risk
Medium risk because it changes the package’s public entrypoints/exports and build pipeline (moving to dist/ ESM + generated typings), which can cause downstream import/type-resolution or runtime packaging regressions despite minimal logic changes.

Overview
Migrates @react-native-firebase/app-distribution from shipping hand-written JS/.d.ts to a TypeScript source layout compiled via react-native-builder-bob, updating package.json to export from ./dist/module and ./dist/typescript (and adding per-package tsconfig.json).

Splits the public surface into explicit TS modules: a typed namespaced implementation (namespaced.ts), modular wrappers (modular.ts) and new public/internal type definitions (including AppDistributionRelease and native module typings), while keeping the legacy FirebaseAppDistributionTypes namespace deprecated for compatibility.

Updates tests/type-tests and root tsconfig.json includes to validate the new exports and deprecation warning behavior.

Reviewed by Cursor Bugbot for commit ed51cc3. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel
Copy link
Copy Markdown

vercel bot commented Jan 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
react-native-firebase Ready Ready Preview, Comment Mar 3, 2026 2:03pm

Request Review

Copy link
Copy Markdown
Member

@russellwheatley russellwheatley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good so far, @MichaelVerdon 👍

@MichaelVerdon MichaelVerdon changed the title feat(app-dist): typescript migrations refactor(app-dist): migrate to TypeScript Feb 9, 2026
@github-actions
Copy link
Copy Markdown

Hello 👋, this PR has been opened for more than 14 days with no activity on it.

If you think this is a mistake please comment and ping a maintainer to get this merged ASAP! Thanks for contributing!

You have 7 days until this gets closed automatically

@github-actions github-actions bot added the Stale label Feb 23, 2026
Copy link
Copy Markdown
Member

@russellwheatley russellwheatley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also need to reinstate index.d.ts and call it namespaced.ts. Namespaced should use namespaced types. Also need to deprecate all api on it. See storage types/namespaced.ts: https://github.com/invertase/react-native-firebase/pull/8824/changes#diff-fd5d9fcbc03d8f4891bacac55f4e1f793eb5c1c95a5acdb6ad85f1bbd14ee205R15-R1248

@MichaelVerdon MichaelVerdon changed the title refactor(app-dist): migrate to TypeScript refactor(app-dist)!: migrate to TypeScript Mar 3, 2026
Copy link
Copy Markdown
Member

@russellwheatley russellwheatley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getting there!

@github-actions
Copy link
Copy Markdown

Hello 👋, this PR has been opened for more than 14 days with no activity on it.

If you think this is a mistake please comment and ping a maintainer to get this merged ASAP! Thanks for contributing!

You have 7 days until this gets closed automatically

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ed51cc3. Configure here.

"compile": "bob build",
"lint:plugin": "eslint plugin/src/*",
"prepare": "yarn run build && yarn run build:plugin"
"prepare": "yarn run build && yarn compile"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing build:plugin step in prepare script

High Severity

The prepare script was changed from "yarn run build && yarn run build:plugin" to "yarn run build && yarn compile", dropping the build:plugin step. The app.plugin.js entry point requires ./plugin/build, which is only generated by the build:plugin script. Without it, Expo users will get a module-not-found error when the config plugin is loaded. Every other package with an Expo plugin (app-check, auth, crashlytics, messaging) includes build:plugin in its prepare step.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ed51cc3. Configure here.

"packages/app-check/lib/modular/index.d.ts",
"packages/app-distribution/lib/index.d.ts",
"packages/app-distribution/lib/modular/index.d.ts",
"packages/app-check/lib/modular.d.ts",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Root tsconfig references non-existent app-check modular.d.ts file

Medium Severity

The root tsconfig.json changed the app-check modular include from packages/app-check/lib/modular/index.d.ts to packages/app-check/lib/modular.d.ts, but this file does not exist. The app-check package has lib/modular.ts (a TypeScript source file), not lib/modular.d.ts. This means root-level type checking will silently miss the app-check modular type declarations.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ed51cc3. Configure here.

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.

2 participants