UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

97 lines (96 loc) 2.95 kB
import { StoreBaseParams } from './../../filelink'; import { UploadTags } from './file'; import { SanitizeOptions } from './../../utils/index'; export interface UploadOptions { /** * Maximum size for file slices. Is overridden when intelligent=true. Default is `6 * 1024 * 1024` (6MB). */ partSize?: number; /** * Maximum amount of part jobs to run concurrently. Default is 3. */ concurrency?: number; /** * Callback for progress events. */ onProgress?: (evt: FSProgressEvent) => void; /** * How often to report progress. Default is 1000 (in milliseconds). */ progressInterval?: number; /** * Callback for retry events. */ onRetry?: () => void; /** * Retry limit. Default is 10. */ retry?: number; /** * Factor for exponential backoff on server errors. Default is 2. */ retryFactor?: number; /** * Upper bound for exponential backoff. Default is 15000. */ retryMaxTime?: number; /** * Timeout for network requests. Default is 120000. */ timeout?: number; /** * Enable/disable intelligent ingestion. * If truthy then intelligent ingestion must be enabled in your Filestack application. * Passing true/false toggles the global intelligent flow (all parts are chunked and committed). * Passing `'fallback'` will only use FII when network conditions may require it (only failing parts will be chunked). */ intelligent?: boolean | 'fallback'; /** * Set the default intiial chunk size for Intelligent Ingestion. Defaults to 8MB on desktop and 1MB on mobile. */ intelligentChunkSize?: number; /** * Disable checking integrity of uploaded files. * On slower devices it can boost upload performance (disable counting md5 from file parts) */ disableIntegrityCheck?: boolean; /** * Define upload tags to be passed to webhook * * @type {Tags} * @memberof UploadOptions */ tags?: UploadTags; altText?: string; } export type StoreUploadOptions = StoreBaseParams & { /** * Filename or function that returns custom filename for stored file */ filename?: ((file: File) => string) | string; /** * Workflows ids to run after upload */ workflows?: (string | WorkflowConfig)[]; /** * Fielname sanitizer for cleanup before upload * * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html * @default { * exclude: ['\\', '{', '}','|', '%', '`', '"', "'", '~', '[', ']', '#', '|', '^', '<', '>'] * replacement: '-' * } * @type {((boolean | { * exclude: string[], * replacement: string, * }))} */ sanitizer?: SanitizeOptions; }; export interface WorkflowConfig { id: string; } export interface FSProgressEvent { totalPercent: number; totalBytes: number; }