UNPKG

@samchon/openapi

Version:

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

36 lines (35 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenApiObjectValidator = void 0; const NamingConvention_1 = require("../NamingConvention"); const OpenApiStationValidator_1 = require("./OpenApiStationValidator"); var OpenApiObjectValidator; (function (OpenApiObjectValidator) { OpenApiObjectValidator.validate = (ctx) => { var _a; if (typeof ctx.value !== "object" || ctx.value === null) return ctx.report(ctx); return [ ...Object.entries((_a = ctx.schema.properties) !== null && _a !== void 0 ? _a : {}).map(([key, value]) => { var _a, _b; return OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: value, value: ctx.value[key], path: ctx.path + (NamingConvention_1.NamingConvention.variable(key) ? `.${key}` : `[${JSON.stringify(key)}]`), required: (_b = (_a = ctx.schema.required) === null || _a === void 0 ? void 0 : _a.includes(key)) !== null && _b !== void 0 ? _b : false })); }), ...(typeof ctx.schema.additionalProperties === "object" && ctx.schema.additionalProperties !== null ? Object.entries(ctx.value) .filter(([key]) => { var _a; return Object.keys((_a = ctx.schema.properties) !== null && _a !== void 0 ? _a : {}).includes(key) === false; }) .map(([key, value]) => OpenApiStationValidator_1.OpenApiStationValidator.validate(Object.assign(Object.assign({}, ctx), { schema: ctx.schema.additionalProperties, value, path: ctx.path + (NamingConvention_1.NamingConvention.variable(key) ? `.${key}` : `[${JSON.stringify(key)}]`), required: true }))) : []), ].every((v) => v); }; })(OpenApiObjectValidator || (exports.OpenApiObjectValidator = OpenApiObjectValidator = {}));