getsentry / getsentry/sentry-react-native

Review and clean up public API surface types

Ouverte
#6,094 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
React-Native Task
Langage dominant
TypeScript
Étoiles
1.8k
Forks
366
Merge moyen
1 j 6 h
PR mergées (30 j)
94

Description

## Context

With the addition of `@microsoft/api-extractor` in #6093, we now have visibility into the public API surface. The tool reports 36 `ae-forgotten-export` warnings — types that appear in public function signatures but are not exported from `index.ts`.

None of these types are documented in the Sentry docs, and no users have reported needing them. TypeScript's structural typing means consumers can pass plain object literals without importing the types explicitly.

## What needs reviewing

For each type, decide whether to **export it** (make it part of the public API) or **mark it `@internal`** (explicitly keep it private).

### Options/config types (used as integration/function parameters)
- `ReactNativeTracingOptions`, `ReactNativeTracingState`, `ReactNativeTracingIntegration`
- `ReactNavigationIntegrationOptions`, `ReactNativeNavigationOptions`
- `ReactNativeClientOptions`, `ReactNativeTransportOptions`, `BaseReactNativeOptions`, `ReactNativeWrapperOptions`
- `ReactNativeErrorHandlersOptions`, `LinkedErrorsOptions`, `BreadcrumbsOptions`
- `MobileReplayOptions`, `MobileReplayIntegration`
- `HermesProfilingOptions`
- `GraphQLReactNativeIntegrationOptions`, `SpotlightReactNativeIntegrationOptions`, `SupabaseReactNativeIntegrationOptions`
- `FeedbackFormProps`, `FeedbackButtonProps`, `ScreenshotButtonProps`, `FeedbackFormTheme`
- `TouchEventBoundaryProps`
- `AppStartIntegration`, `defaultIdleOptions`

### Internal/external types (likely should stay unexported)
- `FeedbackFormState`, `FeedbackIntegration`, `GlobalErrorBoundaryState` — internal component state
- `Replay`, `ReplayConfiguration` — `@sentry/browser` internals
- `HostComponent`, `ViewProps` — react-native types
- `ExpoAssetInstance`, `ExpoImageSource`, `ExpoImageLoadOptions`, `ExpoImageRef` — internal Expo types

## Additional items to review
- `logger` from `@sentry/browser` is exported publicly — is this intentional?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par les exports publics dans index.ts et le rapport de @microsoft/api-extractor introduit dans #6093. Examinez chaque type d’export oublié répertorié et déterminez s’il appartient à l’API publique ou s’il doit être marqué avec @internal, notamment si l’export de logger est intentionnel. C’est terminé lorsque les 36 avertissements ont tous une résolution explicite et que la surface de l’API reflète ces décisions.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
react-native, typescript
Domaine
api, mobile
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.