UNPKG

nano-mcp

Version:

NANO MCP (Nano Cryptocurrency) Server for AI Assistants - A JSON-RPC 2.0 API server with tools/list endpoint and comprehensive documentation

48 lines (47 loc) 1.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaValidator = void 0; const ajv_1 = __importDefault(require("ajv")); class SchemaValidator { constructor() { this.ajv = new ajv_1.default({ allErrors: true, verbose: true, strict: false }); } static getInstance() { if (!SchemaValidator.instance) { SchemaValidator.instance = new SchemaValidator(); } return SchemaValidator.instance; } validate(data, schema) { const validate = this.ajv.compile(schema); const valid = validate(data); if (!valid) { const error = { code: -32602, message: 'Invalid parameters', details: { errors: validate.errors?.map(err => ({ path: err.instancePath, message: err.message, params: err.params })) } }; throw error; } } addSchema(schema, id) { this.ajv.addSchema(schema, id); } getSchema(id) { return this.ajv.getSchema(id)?.schema; } } exports.SchemaValidator = SchemaValidator;