$ cnpm install extract-files
Clones a value, recursively extracting File, Blob and ReactNativeFile instances with their object paths, replacing them with null. FileList instances are treated as File instance arrays.
Used by GraphQL multipart request spec client implementations such as graphql-react and apollo-upload-client.
Install with npm:
npm install extract-files
See the extractFiles documentation to get started.
10 - 12 || >= 13.7> 0.5%, not OperaMini all, not deadUsed to mark a React Native File substitute in an object tree for extractFiles. It’s too risky to assume all objects with uri, type and name properties are files to extract.
| Parameter | Type | Description |
|---|---|---|
file |
ReactNativeFileSubstitute | A React Native File substitute. |
An extractable file in React Native.
import { ReactNativeFile } from 'extract-files'; const file = new ReactNativeFile({ uri: uriFromCameraRoll, name: 'a.jpg', type: 'image/jpeg', });
Clones a value, recursively extracting File, Blob and ReactNativeFile instances with their object paths, replacing them with null. FileList instances are treated as File instance arrays.
| Parameter | Type | Description |
|---|---|---|
value |
* | Value (typically an object tree) to extract files from. |
path |
ObjectPath? = '' |
Prefix for object paths for extracted files. |
isExtractableFile |
ExtractableFileMatcher? = isExtractableFile | The function used to identify extractable files. |
Returns: ExtractFilesResult — Result.
Extract files from an object.
For the following:
import { extractFiles } from 'extract-files'; const file1 = new File(['1'], '1.txt', { type: 'text/plain' }); const file2 = new File(['2'], '2.txt', { type: 'text/plain' }); const value = { a: file1, b: [file1, file2], }; const { clone, files } = extractFiles(value, 'prefix');
valueremains the same.
cloneis:{ a: null, b: [null, null] }
filesis aMapinstance containing:
Key Value file1['prefix.a', 'prefix.b.0']file2['prefix.b.1']
Checks if a value is an extractable file.
Type: ExtractableFileMatcher
| Parameter | Type | Description |
|---|---|---|
value |
* | Value to check. |
Returns: boolean — Is the value an extractable file.
How to import.
import { isExtractableFile } from 'extract-files';
An extractable file.
Type: File | Blob | ReactNativeFile
A function that checks if a value is an extractable file.
Type: Function
| Parameter | Type | Description |
|---|---|---|
value |
* | Value to check. |
Returns: boolean — Is the value an extractable file.
isExtractableFile is the default extractable file matcher.How to check for the default exactable files, as well as a custom type of file.
import { isExtractableFile } from 'extract-files'; const isExtractableFileEnhanced = (value) => isExtractableFile(value) || (typeof CustomFile !== 'undefined' && value instanceof CustomFile);
What extractFiles returns.
Type: object
| Property | Type | Description |
|---|---|---|
clone |
* | Clone of the original input value with files recursively replaced with null. |
files |
Map<ExtractableFile, Array<ObjectPath>> | Extracted files and their locations within the original value. |
String notation for the path to a node in an object tree.
Type: string
Object path is property a, array index 0, object property b.
a.0.b
A React Native File substitute for when using FormData.
Type: object
| Property | Type | Description |
|---|---|---|
uri |
string | Filesystem path. |
name |
string? | File name. |
type |
string? | File content type. |
A camera roll file.
{ uri: uriFromCameraRoll, name: 'a.jpg', type: 'image/jpeg' }
Copyright 2013 - present © cnpmjs.org