UNPKG

@samchon/openapi

Version:

OpenAPI definitions and converters for 'typia' and 'nestia'.

40 lines (39 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenApiValidator = void 0; const OpenApiStationValidator_1 = require("./internal/OpenApiStationValidator"); var OpenApiValidator; (function (OpenApiValidator) { OpenApiValidator.create = (prop) => (value) => OpenApiValidator.validate(Object.assign(Object.assign({}, prop), { value })); OpenApiValidator.validate = (props) => { const errors = []; OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, props), { path: "$input", exceptionable: true, report: createReporter(errors) })); return errors.length === 0 ? { success: true, data: props.value, } : { success: false, data: props.value, errors, }; }; const createReporter = (array) => { const reportable = (path) => { if (array.length === 0) return true; const last = array[array.length - 1].path; return (path.length > last.length || last.substring(0, path.length) !== path); }; return (error) => { if (error.exceptionable && reportable(error.path)) array.push({ path: error.path, expected: error.expected, value: error.value, }); return false; }; }; })(OpenApiValidator || (exports.OpenApiValidator = OpenApiValidator = {}));