Comparing version 0.1.10 to 0.1.11
@@ -5,20 +5,19 @@ 'use strict'; | ||
if (a === b) return true; | ||
if (typeof a != typeof b) return false; | ||
var typeA = Object.prototype.toString.call(a).slice(8, -1); | ||
if (typeA != Object.prototype.toString.call(b).slice(8, -1)) return false; | ||
switch (typeA) { | ||
case 'Object': | ||
if (Object.keys(a).length != Object.keys(b).length) return false; | ||
for (var key in a) if (!b.hasOwnProperty(key)) return false; | ||
for (var key in a) if (!equal(a[key], b[key])) return false; | ||
return true; | ||
case 'Array': | ||
if (a.length != b.length) return false; | ||
for (var i=0; i<a.length; i++) | ||
if (!equal(a[i], b[i])) return false; | ||
return true; | ||
case 'Date': return a.getTime() == b.getTime(); | ||
case 'RegExp': return a.toString() == b.toString(); | ||
default: return false; | ||
if (Array.isArray(a) && Array.isArray(b)) { | ||
if (a.length != b.length) return false; | ||
for (var i = 0; i < a.length; i++) | ||
if (!equal(a[i], b[i])) return false; | ||
return true; | ||
} | ||
if (a && b && typeof a == 'object' && typeof b == 'object') { | ||
var keys = Object.keys(a); | ||
if (!equal(keys, Object.keys(b))) return false; | ||
for (var i = 0; i < keys.length; i++) | ||
if (!equal(a[keys[i]], b[keys[i]])) return false; | ||
return true; | ||
} | ||
return false; | ||
} |
@@ -1,9 +0,1 @@ | ||
{{## def.checkUnique: | ||
if (unique_itemsHash[item]) { | ||
valid = false; | ||
break outer; | ||
} | ||
unique_itemsHash[item] = true; | ||
#}} | ||
var valid = true; | ||
@@ -13,25 +5,10 @@ | ||
if (data.length > 1) { | ||
var unique_itemsHash = {}; | ||
var i = data.length, j; | ||
outer: | ||
for (var i = 0; i < data.length; i++) { | ||
var item = data[i]; | ||
switch (typeof item) { | ||
case 'object': | ||
if (item === null) { | ||
{{# def.checkUnique }} | ||
} else { | ||
for (var j = i+1; j < data.length; j++) { | ||
if (equal(item, data[j])) { | ||
valid = false; | ||
break outer; | ||
} | ||
} | ||
} | ||
break; | ||
case 'string': | ||
item = '"' + item; | ||
/* fall through */ | ||
default: | ||
{{# def.checkUnique }} | ||
for (;i--;) { | ||
for (j = i; j--;) { | ||
if (equal(data[i], data[j])) { | ||
valid = false; | ||
break outer; | ||
} | ||
} | ||
@@ -44,3 +21,3 @@ } | ||
dataPath: dataPath, | ||
message: 'item #' + i + 'is duplicate' | ||
message: 'items ## ' + i + ' and ' + j + ' are duplicate' | ||
{{? it.opts.verbose }}, schema: {{= it.schema.uniqueItems }}, data: data{{?}} | ||
@@ -47,0 +24,0 @@ }); |
{ | ||
"name": "ajv", | ||
"version": "0.1.10", | ||
"version": "0.1.11", | ||
"description": "Another JSON schema Validator", | ||
@@ -5,0 +5,0 @@ "main": "lib/ajv.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
187802
5772