UNPKG

test-openapi

Version:
64 lines (44 loc) 1.49 kB
"use strict";require("core-js/modules/es.array.iterator");Object.defineProperty(exports,"__esModule",{value:true});exports.handleJsonSchemas=void 0;var _lodash=require("lodash"); var _path=require("../../../utils/path.js"); var _types=require("../../../utils/types.js"); var _meta=require("../../../validation/meta.js"); const handleJsonSchemas=function({validate}){ return(0,_lodash.mapValues)(validate,handleJsonSchema); };exports.handleJsonSchemas=handleJsonSchemas; const handleJsonSchema=function(value,prop){ if(!hasJsonSchema({prop})){ return value; } if(!(0,_types.isObject)(value)){ return applyShortcut({value}); } validateJsonSchema({value,prop}); return value; }; const hasJsonSchema=function({prop}){ return prop.startsWith("headers.")||prop==="body"; }; const applyShortcut=function({value}){ const type=guessType(value); return{...type,enum:[value]}; }; const guessType=function(value){ if(value===undefined){ return; } const[type]=TYPES.find(([,condition])=>condition(value)); return{type}; }; const TYPES=Object.entries({ null:value=>value===null, integer:Number.isInteger, number:value=>typeof value==="number"&&!Number.isInteger(value), string:value=>typeof value==="string", boolean:value=>typeof value==="boolean", array:Array.isArray, object:()=>true}); const validateJsonSchema=function({value,prop}){ const valueProp=(0,_path.getPath)(["task","validate",prop]); (0,_meta.checkIsSchema)({value,valueProp}); }; //# sourceMappingURL=json_schema.js.map