@ddegtyarev/aws-tools
Version:
This project contains AWS API integration tools for use in Vertex AI SDK.
34 lines (33 loc) • 1.24 kB
JavaScript
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);
}
}