From 6d9bd3141bed1c02ebfd8e113c3973216a46c642 Mon Sep 17 00:00:00 2001 From: Martin Hansen Date: Sun, 22 Oct 2017 20:24:19 +0200 Subject: [PATCH] Support undefined schemas --- package-lock.json | 78 ++++++++++++++++++++++++++++++++++++------- package.json | 9 ++--- src/property-rules.js | 2 ++ 3 files changed, 73 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1afcfb0..c823ab6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -310,6 +310,18 @@ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", "dev": true }, + "compute-gcd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.0.tgz", + "integrity": "sha1-/B7eW2UAHpUCJlAvRlQ4Y+T+oQ4=", + "dev": true + }, + "compute-lcm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.0.tgz", + "integrity": "sha1-q9ltBAtBsKFm+JlEtci3xRHiGtU=", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -522,9 +534,9 @@ "dev": true }, "eslint": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.8.0.tgz", - "integrity": "sha1-Ip7w41Tg5h2DfHqA/fuoJeGZgV4=", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.9.0.tgz", + "integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=", "dev": true }, "eslint-config": { @@ -734,9 +746,9 @@ } }, "eslint-plugin-import": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz", - "integrity": "sha512-HGYmpU9f/zJaQiKNQOVfHUh2oLWW3STBrCgH0sHTX1xtsxYlH1zjLh8FlQGEIdZSdTbUMaV36WaZ6ImXkenGxQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", "dev": true, "dependencies": { "debug": { @@ -768,9 +780,9 @@ } }, "eslint-plugin-promise": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz", - "integrity": "sha1-ePu2/+BHIBYnVp6FpsU3OvKmj8o=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", + "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", "dev": true }, "eslint-plugin-standard": { @@ -1268,6 +1280,18 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, + "json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", + "dev": true + }, + "json-schema-merge-allof": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.5.5.tgz", + "integrity": "sha512-5DtVgud/21akIUr+ZVbcy3Lpt55WD5BnqGWfUdQdEVzNFqkheincd92Ee9e9aYO7D3u6Vqm6Ag/EwwX74J1AsA==", + "dev": true + }, "json-schema-ref-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-3.3.1.tgz", @@ -3189,6 +3213,36 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true }, + "validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=", + "dev": true + }, + "validate.io-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", + "integrity": "sha1-NDoZgC7TsZaCaceA5VjpNBHAutc=", + "dev": true + }, + "validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "dev": true + }, + "validate.io-integer-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", + "integrity": "sha1-LKveAzKTpry+Bj/q/pHq9GsToIk=", + "dev": true + }, + "validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=", + "dev": true + }, "validator": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz", @@ -3208,9 +3262,9 @@ "dev": true }, "vue": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.1.tgz", - "integrity": "sha512-gOTOjZZWXxXmYkchkdJ3mKi9AbkwWIc0O9yOQYbEdgigy8YI7eh7h2YS3qnDr4UIjvnrbNPbbS+OjO3Qipl4EQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.2.tgz", + "integrity": "sha512-Au9rf8fPkBulFHfZ406UaQDd1jH9fqGRIM+0IHilrXnJ/0TeeMH4SBkNxWf2dGevl2S3aVeu0E/WklEv0/msag==", "dev": true }, "vuelidate": { diff --git a/package.json b/package.json index 58be759..e96085b 100644 --- a/package.json +++ b/package.json @@ -34,19 +34,20 @@ "devDependencies": { "chai": "^4.1.2", "coveralls": "^3.0.0", - "eslint": "^4.8.0", + "eslint": "^4.9.0", "eslint-config": "^0.3.0", "eslint-config-standard": "^10.2.1", - "eslint-plugin-import": "^2.7.0", + "eslint-plugin-import": "^2.8.0", "eslint-plugin-node": "^5.2.0", - "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-promise": "^3.6.0", "eslint-plugin-standard": "^3.0.1", + "json-schema-merge-allof": "^0.5.5", "json-schema-ref-parser": "^3.3.1", "json-stringify-safe": "^5.0.1", "mocha": "^4.0.1", "nyc": "^11.2.1", "require-uncached": "^1.0.3", - "vue": "^2.5.1", + "vue": "^2.5.2", "vuelidate": "^0.6.1" }, "dependencies": { diff --git a/src/property-rules.js b/src/property-rules.js index b108752..d5fe2e0 100644 --- a/src/property-rules.js +++ b/src/property-rules.js @@ -76,6 +76,8 @@ function getPropertyValidationRules(propertySchema, isRequired, isAttached, prop // support for boolean schemas if (propertySchema === true) { return validationObj + } else if (propertySchema === undefined) { + return validationObj } else if (propertySchema === false) { validationObj.schemaNotPresent = mostBeUndefined return validationObj