SIGN IN SIGN UP
facebook / react-native UNCLAIMED

A framework for building native applications using React

0 0 0 C++

Align Flow lib defs for Node.js buffer with v24 (#55017)

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

This is an AI-assisted change to align the Flow definitions for the `buffer` module with the Node.js docs as at v24.

**New Validation Functions:**

1. **`isUtf8(input)`** - UTF-8 validation (added in v19.4.0, v18.14.0)
   - Validates if Buffer/ArrayBuffer/TypedArray contains only valid UTF-8 data
   - Returns `true` for valid UTF-8 (including empty buffers)
   - Throws error if input is a detached array buffer
   - https://nodejs.org/api/buffer.html#bufferisutf8input

2. **`isAscii(input)`** - ASCII validation (added in v19.6.0, v18.15.0)
   - Validates if Buffer/ArrayBuffer/TypedArray contains only ASCII (0x00-0x7F)
   - Returns `true` for valid ASCII (including empty buffers)
   - Throws error if input is a detached array buffer
   - https://nodejs.org/api/buffer.html#bufferisasciiinput

**Blob URL Resolution:**

3. **`resolveObjectURL(id)`** - Resolve Blob from URL (added in v16.7.0)
   - Resolves `'blob:nodedata:...'` URL to its associated Blob object
   - Returns Blob or `undefined` if URL not found
   - Works with URLs created via `URL.createObjectURL(blob)`
   - https://nodejs.org/api/buffer.html#bufferresolveobjecturlid

**New Constants:**

4. **`constants` object** - Buffer size limits
   - `constants.MAX_LENGTH` - Maximum size of a single Buffer instance
   - `constants.MAX_STRING_LENGTH` - Maximum length for string operations
   - https://nodejs.org/api/buffer.html#bufferconstantsmax_length

**Web API Classes (re-exported):**

5. **`Blob` class** - Exported from buffer module (global in v18.0.0)
   - Web API-compatible Blob for immutable binary data
   - Also available as global (no import needed in v18+)
   - https://nodejs.org/api/buffer.html#class-blob

6. **`File` class** - Exported from buffer module (global in v20.0.0)
   - Web API-compatible File extending Blob
   - Also available as global (no import needed in v20+)
   - https://nodejs.org/api/buffer.html#class-file

**References:**
- Node.js buffer module docs: https://nodejs.org/api/buffer.html

Changelog: [Internal]
 ---
> Generated by [Confucius Code Assist (CCA)](https://www.internalfb.com/wiki/Confucius/Analect/Shared_Analects/Confucius_Code_Assist_(CCA)/)
[Confucius Session](https://www.internalfb.com/confucius?host=devvm45708.cln0.facebook.com&port=8086&tab=Chat&session_id=1a3aa26e-e5a9-11f0-8d47-71a4a90f0494&entry_name=Code+Assist), [Trace](https://www.internalfb.com/confucius?session_id=1a3aa26e-e5a9-11f0-8d47-71a4a90f0494&tab=Trace)

Reviewed By: vzaidman

Differential Revision: D89942832

fbshipit-source-id: 2b86a3084649674f43b6e0a08f9bbf0affd680f9
R
Rob Hogan committed
4862cc78f8bc96c9f35f9b4267f4fb366594bc63
Parent: f5c1126
Committed by meta-codesync[bot] <215208954+meta-codesync[bot]@users.noreply.github.com> on 1/2/2026, 7:24:06 PM