gigachat-node
Version:
The unoffical JavaScript/TypesSript library for the GigaChat API
63 lines (62 loc) • 2.52 kB
TypeScript
/// <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;
}