Skip to content

Commit 715eeaa

Browse files
huntiemeta-codesync[bot]
authored andcommitted
Deprecate @react-native/assets-registry (#57370)
Summary: Pull Request resolved: #57370 **Context** This stack intends to relocate the `AssetRegistry` API from `react-native/assets-registry` into `react-native` — addressing runtime safety and public deep imports issues (1.0 and JS Stable API blockers). **This diff** Deprecate the `react-native/assets-registry` package, replaced by changes in the last two diffs: - `react-native/assets-registry/registry` → use `AssetRegistry` from `react-native` (or the `react-native/asset-registry` build entry point). - `react-native/assets-registry/path-support` → use `react-native/asset-utils`. **Deprecation plan** The package will be deprecated for **two release cycles** (0.87 + 0.88) and deleted in 0.89. Changelog: [General][Deprecated] - Deprecate `react-native/assets-registry`. Use `AssetRegistry` from `react-native` and `react-native/asset-utils` instead. Reviewed By: cortinico Differential Revision: D110053924 fbshipit-source-id: 877a8f1b155232ccca037db6834fbcd9e0b0cc68
1 parent 6cfde8f commit 715eeaa

3 files changed

Lines changed: 35 additions & 4 deletions

File tree

packages/assets-registry/README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,33 @@
22

33
![npm package](https://img.shields.io/npm/v/@react-native/assets-registry?color=brightgreen&label=npm%20package)
44

5+
> [!Warning]
6+
> **This package is deprecated (since 0.87)** and will be removed in a future release. Use [`AssetRegistry`](https://reactnative.dev/docs/assetregistry) from `react-native` (or the `react-native/asset-registry` build entry point) instead of `@react-native/assets-registry/registry`, and [`@react-native/asset-utils`](https://www.npmjs.com/package/@react-native/asset-utils) instead of `@react-native/assets-registry/path-support`.
7+
58
Runtime registry that maps asset IDs generated in a Metro bundle to asset metadata. It backs `<Image>`, `Image.resolveAssetSource()`, and any code that resolves `require('./img.png')` on native.
69

710
Most apps never import this directly — assets are handled through `<Image>`.
811

912
## API
1013

11-
### `@react-native/assets-registry/registry`
14+
### `@react-native/assets-registry/registry` (DEPRECATED)
1215

13-
> [!Note]
14-
> Aliases to [`AssetRegistry`](https://reactnative.dev/docs/assetregistry) (since 0.87). Prefer importing directly from the `'react-native'` package in libraries.
16+
> [!Warning]
17+
> **Deprecated**: Aliases to [`AssetRegistry`](https://reactnative.dev/docs/assetregistry) (since 0.87).
18+
>
19+
> Please use:
20+
> - `import { AssetRegistry } from 'react-native';` (apps/library code)
21+
> - `'react-native/asset-registry'` (entrypoint for Metro/build configs)
1522
1623
| Export | Signature | Notes |
1724
|---|---|---|
1825
| `registerAsset` | `(asset: PackagerAsset) => number` | Stores the asset; returns a numeric ID |
1926
| `getAssetByID` | `(assetId: number) => PackagerAsset` | Looks an asset back up by ID |
2027

21-
### `@react-native/assets-registry/path-support`
28+
### `@react-native/assets-registry/path-support` (DEPRECATED)
29+
30+
> [!Warning]
31+
> **Deprecated**: Use [`@react-native/asset-utils`](https://www.npmjs.com/package/@react-native/asset-utils) (since 0.87).
2232
2333
Android resource-path helpers, used when copying assets into `drawable-*` folders.
2434

packages/assets-registry/path-support.d.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,20 @@
99

1010
import type {PackagerAsset} from './registry';
1111

12+
/**
13+
* @deprecated Use `getAndroidResourceFolderName` from `@react-native/asset-utils` instead.
14+
*/
1215
export function getAndroidResourceFolderName(
1316
asset: PackagerAsset,
1417
scale: number,
1518
): string;
1619

20+
/**
21+
* @deprecated Use `getAndroidResourceIdentifier` from `@react-native/asset-utils` instead.
22+
*/
1723
export function getAndroidResourceIdentifier(asset: PackagerAsset): string;
1824

25+
/**
26+
* @deprecated Use `@react-native/asset-utils` instead.
27+
*/
1928
export function getBasePath(asset: PackagerAsset): string;

packages/assets-registry/registry.d.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,14 @@
77
* @format
88
*/
99

10+
/**
11+
* @deprecated Use `import type {AssetDestPathResolver} from 'react-native'` instead.
12+
*/
1013
export type AssetDestPathResolver = 'android' | 'generic';
1114

15+
/**
16+
* @deprecated Use `import type {PackagerAsset} from 'react-native'` instead.
17+
*/
1218
export type PackagerAsset = {
1319
readonly __packager_asset: boolean;
1420
readonly fileSystemLocation: string;
@@ -22,6 +28,12 @@ export type PackagerAsset = {
2228
readonly resolver?: AssetDestPathResolver | undefined;
2329
};
2430

31+
/**
32+
* @deprecated Use `import {AssetRegistry} from 'react-native'` instead.
33+
*/
2534
export function registerAsset(asset: PackagerAsset): number;
2635

36+
/**
37+
* @deprecated Use `import {AssetRegistry} from 'react-native'` instead.
38+
*/
2739
export function getAssetByID(assetId: number): PackagerAsset;

0 commit comments

Comments
 (0)