Blob constructor is not spec compliant
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 127k
- Forks
- 25.3k
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 4
Descripción
Description
The constructor for React Native's Blob has a comment:
"Currently we only support creating Blobs from other Blobs."
BlobManager confirms this:
"Creating blobs from 'ArrayBuffer' and 'ArrayBufferView' are not supported"
This API is not spec compliant, since this is what the Blob specification specifies:
(Constructed from) "An iterable object such as an Array, having ArrayBuffers, TypedArrays, DataViews, Blobs, strings, or a mix of any of such elements, that will be put inside the Blob. Strings should be well-formed Unicode, and lone surrogates are sanitized using the same algorithm as String.prototype.toWellFormed()."
Steps to reproduce
- Try to call:
new Blob(new Uint8Array([
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23,
]);
See that RN doesn't support Blobs composed of anything but Blobs or strings.
React Native Version
0.73.6
Affected Platforms
Runtime - Android, Runtime - iOS
Output of npx react-native info
N/A
Stacktrace or Logs
N/A
Reproducer
N/A
Screenshots and Videos
No response
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza leyendo packages/react-native/Libraries/Blob/Blob.js y packages/react-native/Libraries/Blob/BlobManager.js, especialmente el constructor y el manejo existente de entradas no compatibles. Confirma el comportamiento actual en Android e iOS y, después, verifica que la construcción de Blob acepte los tipos de entrada iterables indicados en el issue, manteniendo al mismo tiempo la compatibilidad existente con Blob y las cadenas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, react-native
- Área
- mobile
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100