Files
Nedunchezhiyan-M d823f5b1cc Fix incorrect package name and filename in scripts/js-api/README.md (#56362)
Summary:
Two documentation errors in `scripts/js-api/README.md`:

1. **Wrong link text** (line 22): The link for the Flow-to-TypeScript converter reads `[flow-api-extractor](https://www.npmjs.com/package/flow-api-translator)` but the package name is `flow-api-translator`, not `flow-api-extractor`. The link URL was correct but the visible text was misleading.

2. **Wrong filename** (line 76): The Public API snapshot section refers to the file as `ReactNative.d.ts`, while the actual file committed to the repo is `ReactNativeApi.d.ts`. The correct name is already used earlier in the same document (line 16 and line 41).

Fixes https://github.com/facebook/react-native/issues/55667
Fixes https://github.com/facebook/react-native/issues/55668

## Changelog:

[General] [Fixed] - Fix incorrect package name and output filename in scripts/js-api/README.md

Pull Request resolved: https://github.com/facebook/react-native/pull/56362

Test Plan: Documentation-only change. Verified the link URL and the actual file name at `packages/react-native/ReactNativeApi.d.ts`.

Reviewed By: huntie

Differential Revision: D100761759

Pulled By: cortinico

fbshipit-source-id: 8a30ca1a5f35c9491c2ad4c94ae20da4621cb5a7
2026-04-15 04:29:37 -07:00

85 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# scripts/js-api
TypeScript build pipeline for React Native's JavaScript API.
## Overview
`yarn build-types` is a custom build pipeline for translating React Native's Flow source code to TypeScript.
Specifically, it reduces the runtime JavaScript API of `react-native` into two outputs:
- **Generated TypeScript types**\
Public user types for react-native, shipped to npm\
`packages/react-native/types_generated/`
- **‌Public API snapshot**\
Snapshot file of the public API shape, used by maintainers\
`packages/react-native/ReactNativeApi.d.ts`
#### Dependencies
`yarn build-types` makes use of the following dependencies, composed with other pre/post transformation steps and dependency resolution.
- Flow → TypeScript conversion: [flow-api-translator](https://www.npmjs.com/package/flow-api-translator)
- TypeScript → (initial) API rollup: [@microsoft/api-extractor](https://api-extractor.com/)
## Usage
#### Build generated types + API snapshot
Maintainers should run this script whenever making intentional API changes.
```sh
# Build types + API snapshot
yarn build-types [--validate]
# Build types without API snapshot
yarn build-types --skip-snapshot
```
#### Diff API snapshot compatibility
This script is run by CI to compare changes to `ReactNativeApi.d.ts` between commits.
```sh
# Compare two versions of the API snapshot
yarn js-api-diff <before.d.ts> <after.d.ts>
```
```json
{
"result": "BREAKING",
"changedApis": [
"ViewStyle"
]
}
```
#### Configuration
Sparse configuration options are defined and documented in `scripts/js-api/config.js`.
## About the two output formats
### Generated TypeScript types
`types_generated/`
Directory providing TypeScript user types for the `react-native` package, distributed via npm.
- Gitignored.
- Scoped to the `index.d.ts` entry point via `package.json#exports`.
- Preserves `unstable_` and `experimental_` APIs.
- Preserves doc comments.
- Preserves source file names (for go to definition).
### Public API snapshot
`ReactNativeApi.d.ts`
Provides a human-readable, maintainable reference of the React Native's public JavaScript API, optimized for developers and diff tooling.
- Committed to the repo.
- Strips `unstable_` and `experimental_` APIs.
- Strips doc comments.
- Strips source file names (types are merged into a single program).
- Versions exported APIs with an 8 char SHA hash, which will be updated when any input type dependencies change shape.