pinata-expo-hooks
Version:
React Native/Expo hooks for Pinata TUS uploads
46 lines (45 loc) • 1.4 kB
TypeScript
export type UploadOptions = {
customHeaders?: Record<string, string>;
name?: string;
keyvalues?: Record<string, string>;
groupId?: string;
chunkSize?: number;
};
export interface ExtendedUploadOptions extends UploadOptions {
fileName?: string;
fileType?: string;
}
export type UploadResponse = {
id: string;
};
export type UseUploadReturn = {
progress: number;
loading: boolean;
error: Error | null;
uploadResponse: string | null;
upload: (fileUri: string, network: "public" | "private", url: string, options?: UploadOptions) => Promise<void>;
uploadBase64: (base64String: string, network: "public" | "private", url: string, options?: UploadOptions & {
fileName?: string;
fileType?: string;
}) => Promise<void>;
pause: () => void;
resume: () => void;
cancel: () => void;
resetState: () => void;
};
export declare class PinataError extends Error {
constructor(message: string);
}
export declare class NetworkError extends PinataError {
status: number;
details: any;
constructor(message: string, status: number, details?: any);
}
export declare class AuthenticationError extends PinataError {
status: number;
details: any;
constructor(message: string, status: number, details?: any);
}
export declare class ValidationError extends PinataError {
constructor(message: string);
}