@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
40 lines (39 loc) • 1.57 kB
JavaScript
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 = {}));
;