UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

123 lines (112 loc) 3.43 kB
/* * Copyright (c) 2018 by Filestack. * Some rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 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; // Retry limit /** * 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; }