mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
94987205de
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/52292 Adds a new transform that annotates all exported symbols in our V2 JS API snapshot with a version hash based on the shape of all input types. This intends to be a reliable mechanism to indicate how changes to local types will ultimately affect exported types. **Advantages** (over our alternative type inlining prototype) - More intuitive to developers — in that source type changes are preserved closer to their original source code shapes. - Enables useful Git blaming of individual exported APIs — hash for each export line will change every time a type is affected, and relevant commits can be looked up based on this. - Handles recursive types. - Can be **best-effort** with minimal structural effect over time. We are okay with false positives that over-match input type changes (these are refined later in the stack). - Similar to this, is **lower risk** in terms of requiring future updates that may pollute the diff of the body of the API snapshot structurally. **Example change** Example type change with multiple references: D77378010 {F1979784798} ✅ 8 char hash based on input type shapes printed next to each root-exported identifier ✅ For a source change to the `AccessibilityProps` type, 33 dependent exported types are updated with a new hash Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D77303917 fbshipit-source-id: 9d43a617697418218eb4951e8e9858d125e222b3