UNPKG

@unified-llm/core

Version:
45 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationError = void 0; exports.validateChatRequest = validateChatRequest; exports.validateMessage = validateMessage; class ValidationError extends Error { constructor(message) { super(message); this.name = 'ValidationError'; } } exports.ValidationError = ValidationError; function validateChatRequest(request) { if (!request || typeof request !== 'object') { throw new ValidationError('Request must be a valid object'); } if (!request.messages || !Array.isArray(request.messages)) { throw new ValidationError('Messages must be an array in the request'); } if (request.messages.length === 0) { throw new ValidationError('Messages array cannot be empty'); } request.messages.forEach((msg, index) => { validateMessage(msg, index); }); } function validateMessage(message, index) { if (!message || typeof message !== 'object') { throw new ValidationError(`Message at index ${index} must be a valid object`); } const validRoles = ['system', 'user', 'assistant', 'tool', 'function', 'developer']; if (!message.role || !validRoles.includes(message.role)) { throw new ValidationError(`Message at index ${index} has invalid role: ${message.role}. Valid roles are: ${validRoles.join(', ')}`); } if (message.content === undefined || message.content === null) { throw new ValidationError(`Message at index ${index} must have content`); } if (typeof message.content === 'string' && message.content.trim() === '') { throw new ValidationError(`Message at index ${index} cannot have empty content`); } if (Array.isArray(message.content) && message.content.length === 0) { throw new ValidationError(`Message at index ${index} cannot have empty content array`); } } //# sourceMappingURL=validation.js.map