1
0
Fork 0

Allow manifest validation types to be arrays.

This commit is contained in:
Alan Plum 2015-03-11 11:06:43 +01:00
parent 44101c621d
commit 99ca1cb41f
1 changed files with 7 additions and 3 deletions

View File

@ -219,7 +219,7 @@
"thumbnail": [ false, "string" ], "thumbnail": [ false, "string" ],
"version": [ true, "string" ], "version": [ true, "string" ],
"rootElement": [ false, "boolean" ], "rootElement": [ false, "boolean" ],
"exports": [ false, "object" ] "exports": [ false, ["object", "string"] ]
}; };
var att, failed = false; var att, failed = false;
@ -232,11 +232,15 @@
expectedType = expected[att][1]; expectedType = expected[att][1];
actualType = Array.isArray(mf[att]) ? "array" : typeof(mf[att]); actualType = Array.isArray(mf[att]) ? "array" : typeof(mf[att]);
if (actualType !== expectedType) { function matchesType(type) {
return actualType === type;
}
if (!(Array.isArray(expectedType) ? expectedType.some(matchesType) : actualType === expectedType)) {
console.error("Manifest '%s' uses an invalid data type (%s) for %s attribute '%s'", console.error("Manifest '%s' uses an invalid data type (%s) for %s attribute '%s'",
filename, filename,
actualType, actualType,
expectedType, String(expectedType),
att); att);
failed = true; failed = true;
} }