From f1697544cd720df21bd7dc8ca993d95a41321e3f Mon Sep 17 00:00:00 2001 From: Tim Yung Date: Sat, 17 May 2025 23:17:37 -0700 Subject: [PATCH] RN: Migrate to ESM - Libraries/Components/Image (#51434) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51434 Migrates files to use ESM to mitigate the existing lint warning. I am suppressing `RelativeImageStub` to preserve compatibility with the dynamic asset exports generated by Metro (i.e. not ESM with `default` exports). Changelog: [Internal] Reviewed By: SamChou19815 Differential Revision: D74943031 fbshipit-source-id: ac4b2afd96fe5446acb4452395d7cb42bb5a6c17 --- .../react-native/Libraries/Image/AssetRegistry.js | 14 ++++---------- .../Libraries/Image/RelativeImageStub.js | 1 + .../__snapshots__/public-api-test.js.snap | 9 ++++----- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/packages/react-native/Libraries/Image/AssetRegistry.js b/packages/react-native/Libraries/Image/AssetRegistry.js index 1209f16eb2a..3e1785346ff 100644 --- a/packages/react-native/Libraries/Image/AssetRegistry.js +++ b/packages/react-native/Libraries/Image/AssetRegistry.js @@ -8,13 +8,7 @@ * @format */ -'use strict'; - -import type {PackagerAsset} from '@react-native/assets-registry/registry'; - -const AssetRegistry = require('@react-native/assets-registry/registry') as { - registerAsset: (asset: PackagerAsset) => number, - getAssetByID: (assetId: number) => PackagerAsset, -}; - -module.exports = AssetRegistry; +export { + registerAsset, + getAssetByID, +} from '@react-native/assets-registry/registry'; diff --git a/packages/react-native/Libraries/Image/RelativeImageStub.js b/packages/react-native/Libraries/Image/RelativeImageStub.js index 355ff92c22a..486aec9b299 100644 --- a/packages/react-native/Libraries/Image/RelativeImageStub.js +++ b/packages/react-native/Libraries/Image/RelativeImageStub.js @@ -27,4 +27,5 @@ const RelativeImageStub = (AssetRegistry.registerAsset({ type: 'png', }): number); +// eslint-disable-next-line lint/no-commonjs-exports module.exports = RelativeImageStub; diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index d27466b6808..10b1720cc63 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -4219,11 +4219,10 @@ declare export default typeof RCTNativeAppEventEmitter; `; exports[`public API should not change unintentionally Libraries/Image/AssetRegistry.js 1`] = ` -"declare const AssetRegistry: { - registerAsset: (asset: PackagerAsset) => number, - getAssetByID: (assetId: number) => PackagerAsset, -}; -declare module.exports: typeof AssetRegistry; +"export { + registerAsset, + getAssetByID, +} from \\"@react-native/assets-registry/registry\\"; " `;