in src/js/index.js [48:132]
var isMatch = function(slug, text) {
// Lowercase search text
text = text.toLowerCase();
// Find matching dataset
var dataset;
for (var i = 0; i < datasets.length; i++) {
if (datasets[i].Slug === slug) {
dataset = datasets[i];
break;
}
}
// Short circuit for special case of query like tags:foo,bar
var tagsRE = /tags:(.*)/.exec(text);
if(tagsRE) {
var tags = tagsRE[1].split(',');
var hasMatch = false;
tags.forEach(function(tag) {
if (dataset.Tags.includes(tag.trim())) {
hasMatch = true;
}
});
if (hasMatch) { return true; }
}
// Short circuit for special case of query like managedBy:foo
var managedByRE = /managedby:(.*)/.exec(text);
if(managedByRE && dataset.ManagedBy) {
var managedBy = managedByRE[1];
return dataset.ManagedBy.toLowerCase().includes(managedBy.trim());
}
// Check dataset name
if (dataset.Name.toLowerCase().indexOf(text) !== -1) {
return true;
}
// Check dataset tags
for (var i = 0; i < dataset.Tags.length; i++) {
if (dataset.Tags[i].toLowerCase().indexOf(text) !== -1) {
return true;
}
}
// Check dataset description
if (dataset.Description.toLowerCase().indexOf(text) !== -1) {
return true;
}
// Check resources Type
var hasMatch = false;
for (var i = 0; i < dataset.Resources.length; i++) {
if (!dataset.Resources[i].Type) { continue; }
if (dataset.Resources[i].Type.toLowerCase().indexOf(text) !== -1) {
hasMatch = true;
break;
}
}
if (hasMatch) { return true; }
// Check resources ARN
hasMatch = false;
for (var i = 0; i < dataset.Resources.length; i++) {
if (!dataset.Resources[i].ARN) { continue; }
if (dataset.Resources[i].ARN.toLowerCase().indexOf(text) !== -1) {
hasMatch = true;
break;
}
}
if (hasMatch) { return true; }
// Check resources region
hasMatch = false;
for (var i = 0; i < dataset.Resources.length; i++) {
if (!dataset.Resources[i].Region) { continue; }
if (dataset.Resources[i].Region.toLowerCase().indexOf(text) !== -1) {
hasMatch = true;
break;
}
}
if (hasMatch) { return true; }
// If we're here, no match
return false;
};