UNPKG

@ddegtyarev/aws-tools

Version:

This project contains AWS API integration tools for use in Vertex AI SDK.

34 lines (33 loc) 1.24 kB
import Ajv from 'ajv'; const ajv = new Ajv({ allErrors: true, verbose: true }); export function createValidationError(errors, schemaType) { const error = new Error(`${schemaType} validation failed`); error.name = 'ValidationError'; error.errors = errors; error.schemaType = schemaType; return error; } export function validateInput(input, inputSchema, logger) { const validate = ajv.compile(inputSchema); const valid = validate(input); if (!valid) { logger?.error('Input validation failed:', validate.errors); throw createValidationError(validate.errors || [], 'input'); } } export function validateConfig(config, configSchema, logger) { const validate = ajv.compile(configSchema); const valid = validate(config); if (!valid) { logger?.error('Config validation failed:', validate.errors); throw createValidationError(validate.errors || [], 'config'); } } export function validateParameters(input, inputSchema, config, configSchema, logger) { // Always validate input validateInput(input, inputSchema, logger); // Validate config only if configSchema is provided if (configSchema) { validateConfig(config, configSchema, logger); } }