UNPKG

barneo-file-service

Version:

Комплексная библиотека Vue 3 для работы с файлами в приложениях Barneo. Предоставляет мощную функциональность для загрузки, управления и обработки файлов с валидацией, отслеживанием прогресса и поддержкой localStorage.

96 lines (72 loc) 3.39 kB
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; }