Skip to main content

Types

info

For Batch and BatchItem see: Entities Page

UploadyContextType

type UploadyContextType = {
getInternalFileInput: () => InputRef | undefined;
setExternalFileInput: (inputRef: InputRef) => void;
getIsUsingExternalInput: () => boolean;
hasUploader: () => boolean;
showFileUpload: (options?: UploadOptions) => void;
upload: AddUploadFunction;
processPending: (uploadOptions?: UploadOptions) => void;
clearPending: () => void;
setOptions: (options: CreateOptions) => void;
getOptions: () => CreateOptions;
on: OnAndOnceMethod;
once: OnAndOnceMethod;
off: OffMethod;
abort: (id?: string) => void;
abortBatch: (id: string) => void;
getExtension: (name: unknown) => Record<string, unknown>;
};

Destination

type Destination = {
url?: string;
filesParamName?: string;
params?: Record<string, unknown>;
headers?: Record<string, unknown>;
method?: string;
};

FormatServerResponseMethod

type FormatServerResponseMethod = (response: string, status: number, headers: Record<string, string> | undefined) => unknown;

FormatParamGroupNameMethod

type FormatParamGroupNameMethod = (index: number, paramName: string) => string;

FileFilterMethod

type FileFilterMethod = (file: File | string, index: number, files: File[] | string[]) => boolean | Promise<boolean | undefined> | undefined;

IsSuccessfulCall

export type IsSuccessfulCall = (xhr: XMLHttpRequest) => boolean;

SendOptions

interface SendOptions  {
method: string;
paramName: string;
params?: Record<string, unknown>;
headers?: Record<string, unknown>;
forceJsonResponse?: boolean;
withCredentials?: boolean;
formatGroupParamName?: FormatParamGroupNameMethod;
sendWithFormData?: boolean;
formDataAllowUndefined?: boolean;
formatServerResponse?: FormatServerResponseMethod;
isSuccessfulCall?: IsSuccessfulCall;
}

UploadInfo

type UploadInfo = string | FileLike | BatchItem;

UploadAddMethod

type UploadAddMethod = (files: UploadInfo | UploadInfo[], addOptions?: UploadOptions) => Promise<void>

UploaderType

export type UploaderType = {
id: string;
update: (updateOptions: CreateOptions) => UploaderType;
add: UploadAddMethod;
upload: (uploadOptions?: UploadOptions) => void;
abort: (id?: string) => void;
abortBatch: (id: string) => void;
getOptions: () => CreateOptions;
getPending: () => PendingBatch[];
clearPending: () => void;
on: OnAndOnceMethod;
once: OnAndOnceMethod;
off: OffMethod;
registerExtension: RegisterExtensionMethod;
getExtension: (name: unknown) => Record<string, unknown>;
}

UploaderListeners

type UploaderListeners = { [key: string]: EventCallback };

UploadOptions

interface UploadOptions extends Partial<SendOptions>{
autoUpload?: boolean;
clearPendingOnAdd?: boolean;
formatGroupParamName?: FormatParamGroupNameMethod;
grouped?: boolean;
maxGroupSize?: number;
fileFilter?: FileFilterMethod;
destination?: Destination;
fastAbortThreshold?: number;
}

UploaderEnhancer

type UploaderEnhancer = (uploader: UploaderType, trigger: Trigger<any>) => UploaderType;

OnProgress

type OnProgress = (e: SenderProgressEvent, objs: Record<string, unknown>[]) => void;

UploadData

type UploadData = {
status: number;
state: FILE_STATES;
response: any;
};

See: FILE_STATES

SendResult

type SendResult = {
request: Promise<UploadData>;
abort: () => boolean;
senderType: string;
};

SendMethod

type SendMethod = (item: BatchItem[], url: string | undefined, options: SendOptions, onProgress?: OnProgress) => SendResult;

CreateOptions

interface CreateOptions extends UploadOptions {
enhancer?: UploaderEnhancer;
concurrent?: boolean;
maxConcurrent?: number;
send?: SendMethod;
}

InputRef

type InputRef = { current: HTMLInputElement | null };

EventHook

type EventHook<T> = (cb: (obj: T, options: CreateOptions) => void, id?: string) => void;

CancellableHook

type CancellableHook<T> = (cb: (obj: T, options: CreateOptions) => boolean | void | Promise<boolean | void>, id?: string) => void;

ItemCancellableEventHook

type ItemCancellableEventHook = CancellableHook<BatchItem>;

EventHookWithState

type EventHookWithState<T> = ((cb?: (obj: T) => void, id?: string) => T) & ((id?: string) => T);

BatchEventHook

type BatchEventHook = EventHook<Batch>;

BatchCancellableEventHook

type BatchCancellableEventHook = CancellableHook<Batch>;

ItemEventHook

type ItemEventHook = EventHook<BatchItem>;

ItemCancellableEventHook

type ItemCancellableEventHook = CancellableHook<BatchItem>;

ItemEventHookWithState

type ItemEventHookWithState = EventHookWithState<BatchItem>;

ChunkEventData

type ChunkEventData = {
id: string;
start: number;
end: number;
index: number;
attempt: number;
};

ChunkStartEventData

type ChunkStartEventData = {
item: BatchItem;
chunk: ChunkEventData;
chunkItem: BatchItem;
sendOptions: SendOptions;
url: string;
remainingCount: number,
totalCount: number,
onProgress: OnProgress
};

ChunkFinishEventData

type ChunkFinishEventData = {
item: BatchItem;
chunk: ChunkEventData;
uploadData: UploadData;
};

ChunkedOptions

interface ChunkedOptions {
chunked?: boolean;
chunkSize?: number;
retries?: number;
parallel?: number;
}

ChunkedUploadyProps

interface ChunkedUploadyProps extends UploadyProps, ChunkedOptions {}

TusOptions

interface TusOptions extends ChunkedOptions {
version?: string;
featureDetection?: boolean;
featureDetectionUrl?: string | null;
onFeaturesDetected?: (extensions: string[]) => TusOptions | void;
resume?: boolean;
deferLength?: boolean;
overrideMethod?: boolean;
sendDataOnCreate?: boolean;
storagePrefix?: string;
lockedRetryDelay?: number;
forgetOnSuccess?: boolean;
ignoreModifiedDateInStorage?: boolean;
}

TusUploadyProps

interface TusUploadyProps extends UploadyProps, TusOptions {}

TusResumeStartEventData

interface TusResumeStartEventData {
url: string;
item: BatchItem;
resumeHeaders?: Record<string, string>;
}

TusResumeStartEventResponse

type TusResumeStartEventResponse = void | boolean | {
url?: string;
resumeHeaders?: Record<string, string>;
};

TusPartStartEventData

interface TusPartStartEventData {
url: string;
item: BatchItem;
headers: Record<string, string>;
chunk: ChunkEventData;
}

TusPartStartEventResponse

type TusPartStartEventResponse = void  | {
url?: string;
headers?: Record<string, string>;
};

PasteUploadData

type PasteUploadData = { count: number };

PasteUploadHandler

type PasteUploadHandler = (data: PasteUploadData) => void;

PasteCompProps

interface PasteCompProps {
className?: string;
id?: string;
children?: JSX.Element[] | JSX.Element | string;
extraProps?: Record<string, unknown>;
onPasteUpload?: PasteUploadHandler,
}

RemovePreviewMethod

type RemovePreviewMethod = (id: string) => void;

PreviewItem

type PreviewItem = {
id: string;
url: string;
name: string;
type: PreviewType;
isFallback: boolean;
removePreview: RemovePreviewMethod;
props: Record<string, unknown>;
};

MockOptions

interface MockOptions {
delay?: number;
fileSize?: number;
progressIntervals?: number[];
response?: any;
}

PreSendData

export interface PreSendData {
items: BatchItem[];
options: CreateOptions;
}

PreSendResponse

type PreSendResponse = { items?: BatchItem[]; options?: CreateOptions } | boolean | void;

PreviewOptions

type FallbackMethod = (file: FileLike) => FallbackType | void;

enum PreviewType {
IMAGE = "image",
VIDEO = "video",
}

type PreviewComponentPropsMethod = (item: BatchItem, url: string, type: PreviewType) => Record<string, unknown>;

type PreviewComponentPropsOrMethod = Record<string, unknown> | PreviewComponentPropsMethod;

interface PreviewOptions {
rememberPreviousBatches?: boolean;
loadFirstOnly?: boolean;
maxPreviewImageSize?: number;
maxPreviewVideoSize?: number;
fallbackUrl?: string | FallbackMethod;
imageMimeTypes?: string[];
videoMimeTypes?: string[];
previewComponentProps?: PreviewComponentPropsOrMethod;
}

EventCallback

type EventCallback = (...args: any[]) => unknown | void;

OffMethod

type OffMethod = (name: unknown, cb?: EventCallback) => void;

OnAndOnceMethod

type OnAndOnceMethod = (name: unknown, cb: EventCallback) => OffMethod;