is-my-json-valid
Advanced tools
+14
-4
@@ -100,2 +100,14 @@ var genobj = require('generate-object-property') | ||
| var isMultipleOf = function(name, multipleOf) { | ||
| var res; | ||
| var factor = ((multipleOf | 0) !== multipleOf) ? Math.pow(10, multipleOf.toString().split('.').pop().length) : 1 | ||
| if (factor > 1) { | ||
| var factorName = ((name | 0) !== name) ? Math.pow(10, name.toString().split('.').pop().length) : 1 | ||
| if (factorName > factor) res = true | ||
| else res = Math.round(factor * name) % (factor * multipleOf) | ||
| } | ||
| else res = name % multipleOf; | ||
| return !res; | ||
| } | ||
| var toType = function(node) { | ||
@@ -107,3 +119,3 @@ return node.type | ||
| var fmts = opts ? xtend(formats, opts.formats) : formats | ||
| var scope = {unique:unique, formats:fmts} | ||
| var scope = {unique:unique, formats:fmts, isMultipleOf:isMultipleOf} | ||
| var verbose = opts ? !!opts.verbose : false; | ||
@@ -438,5 +450,3 @@ var greedy = opts && opts.greedy !== undefined ? | ||
| var factor = ((node.multipleOf | 0) !== node.multipleOf) ? Math.pow(10, node.multipleOf.toString().split('.').pop().length) : 1 | ||
| if (factor > 1) validate('if ((%d*%s) % %d) {', factor, name, factor*node.multipleOf) | ||
| else validate('if (%s % %d) {', name, node.multipleOf) | ||
| validate('if (!isMultipleOf(%s, %d)) {', name, node.multipleOf) | ||
@@ -443,0 +453,0 @@ error('has a remainder') |
+1
-1
| { | ||
| "name": "is-my-json-valid", | ||
| "version": "2.13.0", | ||
| "version": "2.13.1", | ||
| "description": "A JSONSchema validator that uses code generation to be extremely fast", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
+1
-1
@@ -43,3 +43,3 @@ # is-my-json-valid | ||
| ``` js | ||
| var validate = validate('{"type": ... }') | ||
| var validate = validator('{"type": ... }') | ||
| ``` | ||
@@ -46,0 +46,0 @@ |
@@ -59,3 +59,39 @@ [ | ||
| ] | ||
| }, | ||
| { | ||
| "description": "by decimal number where floating point precision is wrong", | ||
| "schema": {"multipleOf": 0.01}, | ||
| "tests": [ | ||
| { | ||
| "description": "Number 2 is multiple of 0.01", | ||
| "data": 2, | ||
| "valid": true | ||
| }, | ||
| { | ||
| "description": "Number 2.1 is multiple of 0.01", | ||
| "data": 2.1, | ||
| "valid": true | ||
| }, | ||
| { | ||
| "description": "Number 2.2 is multiple of 0.01", | ||
| "data": 2.2, | ||
| "valid": true | ||
| }, | ||
| { | ||
| "description": "Number 2.3 is multiple of 0.01", | ||
| "data": 2.3, | ||
| "valid": true | ||
| }, | ||
| { | ||
| "description": "Number 2.4 is multiple of 0.01", | ||
| "data": 2.4, | ||
| "valid": true | ||
| }, | ||
| { | ||
| "description": "Number 1.211 is not multiple of 0.01", | ||
| "data": 1.211, | ||
| "valid": false | ||
| } | ||
| ] | ||
| } | ||
| ] |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
104838
1.31%3353
1.36%