UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

85 lines (84 loc) 3.33 kB
import { ResponseFormat, RetryConfig } from './api.interface'; /** * Тип для функции отписки от событий */ export type Unsubscribe = VoidFunction; /** * Опции для выполнения запроса */ export interface QueryOptions { /** Отключить кэширование для этого запроса */ disableCache?: boolean; /** Signal для отмены запроса */ signal?: AbortSignal; /** Таймаут в миллисекундах (переопределяет глобальный) */ timeout?: number; /** Дополнительные заголовки */ headers?: Headers; /** Пользовательский контекст */ context?: Record<string, any>; /** Ключи заголовков, влияющие на кэш (для конкретного запроса) */ cacheableHeaderKeys?: string[]; /** Формат ответа (переопределяет формат из RequestDefinition) */ responseFormat?: ResponseFormat; /** Название файла при скачивании (переопределяет fileName из RequestDefinition) */ fileName?: string; /** Тип файла при скачивании (переопределяет fileType из RequestDefinition) */ fileType?: string; /** Автоматически скачать файл после получения */ downloadFile?: boolean; /** Конфигурация retry для этого запроса (переопределяет эндпоинт и глобальную) */ retry?: RetryConfig; } /** * Метаданные для файла */ export interface FileMetadata { /** Имя файла */ fileName: string; /** Тип файла (MIME-тип) */ fileType: string; /** Размер файла в байтах */ size?: number; /** Дата создания файла */ createdAt?: Date | string; /** Дата изменения файла */ updatedAt?: Date | string; } /** * Результат скачивания файла */ export interface FileDownloadResult<T = Blob | ArrayBuffer> { /** Данные файла */ data: T; /** Метаданные файла */ metadata: FileMetadata; /** HTTP-статус */ status: number; /** Текст статуса */ statusText: string; /** Заголовки ответа */ headers: Headers; /** Успешна ли загрузка */ ok: boolean; } /** * Результат выполнения запроса */ export interface QueryResult<T = any, E = Error> { /** Данные ответа (при успешном запросе) */ data?: T; /** Ошибка (при неуспешном запросе) */ error?: E; /** Флаг успешности запроса */ ok: boolean; /** HTTP-статус */ status: number; /** Текстовое описание статуса */ statusText: string; /** Заголовки ответа */ headers: Headers; /** Результат скачивания файла (если responseFormat - Blob или ArrayBuffer) */ fileDownloadResult?: FileDownloadResult; fromCache?: boolean; }