More exhaustive layergroup validation:

- layers is an array and it's not empty
- layers has at least options
This commit is contained in:
Raul Ochoa
2015-01-26 15:51:10 +01:00
parent 11d9f5dd76
commit e690170689
4 changed files with 160 additions and 16 deletions
+16 -2
View File
@@ -138,8 +138,22 @@ function isInvalidLayergroup(layergroup) {
return new Error('Missing layergroup');
}
if (!_.isArray(layergroup.layers)) {
return new Error('Missing layers array from layergroup config');
var layers = layergroup.layers;
if (!_.isArray(layers) || layers.length === 0) {
return new Error('Missing or empty layers array from layergroup config');
}
var invalidLayers = layers
.map(function(layer, layerIndex) {
return layer.options ? null : layerIndex;
})
.filter(function(layerIndex) {
return layerIndex !== null;
});
if (invalidLayers.length) {
return new Error('Missing `options` in layergroup config for layers: ' + invalidLayers.join(', '));
}
return false;