UNPKG

vue-vuelidate-jsonschema

Version:

Create validation definitions for vuelidate based on json schema

1 lines 5.55 kB
{"filter":false,"title":"items.js","tooltip":"/src/validators/items.js","undoManager":{"mark":0,"position":0,"stack":[[{"start":{"row":1,"column":4},"end":{"row":33,"column":67},"action":"remove","lines":["isPlainObject = require('lodash/isPlainObject')","var every = require('lodash/every')","var isFunction = require('lodash/isFunction')","","module.exports = function itemsValidator(arraySchema, getPropertyValidationRules) {"," var normalizedSchemas"," var originallySingleSchema",""," if (Array.isArray(arraySchema.items)) {"," originallySingleSchema = false"," normalizedSchemas = arraySchema.items"," } else {"," originallySingleSchema = true"," normalizedSchemas = [arraySchema.items]"," }",""," return vuelidate.withParams({"," type: 'schemaItems',"," schema: arraySchema"," }, function(values) {"," if (!Array.isArray(values) || values.length === 0) {"," return true"," }",""," // for items when type object, only check that it is a object"," // $each validator in vuelidate takes care of the rest"," if (originallySingleSchema && arraySchema.items.type === 'object') {"," return values.every(function (value) {"," return isPlainObject(value)"," })"," }",""," var validatorGroups = normalizedSchemas.map(function(itemSchema"],"id":1,"ignore":true},{"start":{"row":1,"column":4},"end":{"row":15,"column":49},"action":"insert","lines":["typeValidator = require('./type')","var validate = require('../validate')","","module.exports = function itemsValidator(arraySchema, getPropertyValidationRules) {"," return vuelidate.withParams({"," type: 'schemaItems',"," schema: arraySchema"," }, function(values) {"," if (!Array.isArray(values) || values.length === 0) {"," return true"," }",""," // ignore type errors, the type validator handles that"," if (arraySchema.items.type === 'object') {"," var hasTypeError = values.some(function(val"]},{"start":{"row":16,"column":0},"end":{"row":16,"column":2},"action":"insert","lines":[" "]},{"start":{"row":16,"column":15},"end":{"row":16,"column":41},"action":"remove","lines":["getPropertyValidationRules"]},{"start":{"row":16,"column":15},"end":{"row":16,"column":29},"action":"insert","lines":["!typeValidator"]},{"start":{"row":16,"column":43},"end":{"row":16,"column":47},"action":"remove","lines":["item"]},{"start":{"row":16,"column":43},"end":{"row":16,"column":48},"action":"insert","lines":["array"]},{"start":{"row":16,"column":54},"end":{"row":25,"column":12},"action":"remove","lines":[")"," })",""," function validateGroup(item, validator, key) {"," if (isPlainObject(validator)) {"," return every(validator, function(innerValidator, innerKey) {"," if (item === undefined) return true"," return validateGroup(item[key], innerValidator, innerKey)"," })"," } else"]},{"start":{"row":16,"column":54},"end":{"row":19,"column":23},"action":"insert","lines":[".type)(val)"," })",""," if (hasTypeError)"]},{"start":{"row":20,"column":15},"end":{"row":20,"column":30},"action":"remove","lines":["validator(item)"]},{"start":{"row":20,"column":15},"end":{"row":20,"column":19},"action":"insert","lines":["true"]},{"start":{"row":24,"column":15},"end":{"row":34,"column":32},"action":"remove","lines":["ionForGroups = validatorGroups.map(function(validatorSet) {"," return function(item) {"," return every(validatorSet, function(validator, key) {"," return validateGroup(item, validator, key)"," })"," }"," })",""," return values.every(function(value, i) {"," var validationGroup"," if (originallySingleSchema"]},{"start":{"row":24,"column":15},"end":{"row":25,"column":41},"action":"insert","lines":["ors"," if (!Array.isArray(arraySchema.items)"]},{"start":{"row":26,"column":0},"end":{"row":26,"column":2},"action":"remove","lines":[" "]},{"start":{"row":27,"column":6},"end":{"row":27,"column":8},"action":"remove","lines":[" "]},{"start":{"row":28,"column":6},"end":{"row":28,"column":8},"action":"remove","lines":[" "]},{"start":{"row":28,"column":13},"end":{"row":36,"column":17},"action":"remove","lines":["ionGroup = validationForGroups[0]"," } else {"," validationGroup = validationForGroups[i]"," }",""," if (isFunction(validationGroup)) {"," return validationGroup(value)"," } else {"," return tr"]},{"start":{"row":28,"column":13},"end":{"row":38,"column":42},"action":"insert","lines":["ors = getPropertyValidationRules(arraySchema.items)"," return values.every(function(value) {"," return validate(validators, value)"," })"," } else {"," validators = arraySchema.items.map(function(itemSchema) {"," return getPropertyValidationRules(itemSchema)"," })",""," return values.every(function(value, i) {"," return validate(validators[i], val"]},{"start":{"row":38,"column":44},"end":{"row":38,"column":45},"action":"insert","lines":[")"]},{"start":{"row":39,"column":7},"end":{"row":39,"column":8},"action":"insert","lines":[")"]},{"start":{"row":40,"column":5},"end":{"row":40,"column":6},"action":"remove","lines":[")"]}]]},"ace":{"folds":[],"scrolltop":60,"scrollleft":0,"selection":{"start":{"row":19,"column":23},"end":{"row":19,"column":23},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":{"row":2,"state":"no_regex","mode":"ace/mode/javascript"}},"timestamp":1507885836984,"hash":"4a86561994e25bfbbb14ac942a9c0267c9acfc2a"}