barneo-file-service
Version:
Комплексная библиотека Vue 3 для работы с файлами в приложениях Barneo. Предоставляет мощную функциональность для загрузки, управления и обработки файлов с валидацией, отслеживанием прогресса и поддержкой localStorage.
96 lines (72 loc) • 3.39 kB
text/typescript
import type { AppName } from "./AppName";
/**
* Конфигурация для input файлов
*
* Определяет параметры валидации и ограничения для выбора файлов
*/
export interface FileInputOptions {
/** Максимальное количество файлов для выбора */
maxFiles?: number;
/** Максимальный размер файла в байтах */
maxFileSize?: number;
/** Разрешенные MIME-типы файлов */
allowedTypes?: string[];
/** Разрешить выбор нескольких файлов */
multiple?: boolean;
}
/**
* Конфигурация для загрузчика файлов
*
* Определяет параметры для загрузки файлов на сервер
*/
export interface FileUploaderOptions {
/** URL API для загрузки файлов */
apiUrl: string;
/** Название приложения для идентификации файлов */
appName: AppName;
/** Дополнительные HTTP заголовки для запросов */
headers?: Record<string, string>;
/** Таймаут запроса в миллисекундах */
timeout?: number;
/** Callback для отслеживания прогресса загрузки */
onProgress?: (progress: number) => void;
/** Callback для обработки ошибок загрузки */
onError?: (error: Error) => void;
}
/**
* Основная конфигурация файлового сервиса
*
* Объединяет настройки API, валидации файлов и хранилища
*/
export interface FileServiceConfig {
// Настройки API
/** URL API для загрузки файлов */
apiUrl: string;
/** Название приложения для идентификации файлов */
appName: AppName;
/** Дополнительные HTTP заголовки для запросов */
headers?: Record<string, string>;
/** Таймаут запроса в миллисекундах */
timeout?: number;
// Настройки input
/** Максимальное количество файлов для выбора */
maxFiles?: number;
/** Максимальный размер файла в байтах */
maxFileSize?: number;
/** Разрешенные MIME-типы файлов */
allowedTypes?: string[];
/** Разрешить выбор нескольких файлов */
multiple?: boolean;
// Настройки хранилища
/** Максимальное количество файлов в localStorage */
maxStoredFiles?: number;
// Callbacks
/** Callback для отслеживания прогресса загрузки */
onProgress?: (progress: number) => void;
/** Callback для обработки ошибок загрузки */
onError?: (error: Error) => void;
/** Callback при успешной загрузке файлов */
onUploadSuccess?: (response: any[]) => void;
/** Callback при завершении загрузки (успешно или с ошибками) */
onUploadComplete?: (allResponses: any[]) => void;
}