UNPKG

gigachat-node

Version:

The unoffical JavaScript/TypesSript library for the GigaChat API

63 lines (62 loc) 2.52 kB
/// <reference types="node" /> /// <reference types="node" /> import { FormDataFile } from './FormDataFile'; /** * Класс для построения multipart/form-data запросов * @class * @property {string} boundary Уникальный разделитель частей формы * @property {Buffer[]} parts Буферы данных частей формы */ export declare class FormDataBuilder { /** Уникальный разделитель частей формы */ private readonly boundary; /** Буферы данных частей формы */ private readonly parts; /** Разделитель строк согласно стандарту */ private readonly lineEnding; /** * Создает экземпляр FormDataBuilder * @constructor * @description Генерирует уникальный boundary для разделения частей формы */ constructor(); /** * Добавляет текстовое поле в форму * @param {string} name Название поля * @param {string} value Значение поля * @example * builder.appendField('username', 'JohnDoe'); */ appendField(name: string, value: string): void; /** * Добавляет файл в форму * @param {string} name Название поля для файла * @param {FormDataFile} file Экземпляр файла * @example * const file = new FormDataFile('photo.jpg'); * builder.appendFile('avatar', file); */ appendFile(name: string, file: FormDataFile): void; /** * Возвращает заголовки для HTTP-запроса * @returns {Object} Объект с заголовками * @property {string} Content-Type MIME-тип с boundary * @property {string} [Content-Length] Размер тела запроса */ getHeaders(): { 'Content-Type': string; 'Content-Length'?: string; }; /** * Собирает итоговое тело запроса * @returns {Buffer} Буфер с данными формы * @description Объединяет все части и добавляет финальный boundary */ getBody(): Buffer; /** * Вычисляет общий размер тела запроса * @private * @returns {number} Общий размер в байтах */ private getTotalLength; }