mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-09-28 21:24:26 +08:00
Currently, all Protocol type definitions live on the global scope. Additionally, the protocol files are included in all ts_library targets. However, we don't want the protocol definitions to be available in, for example, reusable UI components. Therefore, we should move to a system where all files that want to refer to the protocol types should import them instead. However, doing so in 1 large CL will be problematic, which is why it should be both globally available and importable as an interim step. To do so, we augment the existing protocol definitions to export them as namespace and regular export. Then, we introduce a separate file that imports the protocol types and augments the global scope with the definitions. Now, protocol is both importable and remains available on the global scope. The reason that we need a separate file is that TypeScript disallows you to augment the global scope in a file that also exports types. Therefore, the global scope augmentation happens in protocol-globals.d.ts, which will be removed once all Protocol type usages are imported. To verify that this approach works, ProtocolClient imports the required types, while SDK only imports it in AccessibilityModel. All other files in SDK still refer to the global type. In follow-up CLs, all pre-existing usages of Protocol will use the import style. DISABLE_THIRD_PARTY_CHECK=Updating protocol type format R=szuend@chromium.org,jacktfranklin@chromium.org Bug: 1208357 Change-Id: I1d75949b9cd3e37989c6cddf79ac849f5664a1e3 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2891756 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>