Memoize package search function

This commit is contained in:
Steve Purcell 2013-09-29 17:40:11 +01:00
parent 586ef409e3
commit 745f7b6bec

View file

@ -101,13 +101,9 @@
}); });
$scope.packageMatcher = function(term) { $scope.packageMatcher = function(term) {
var t = term && term.toLowerCase(); var t = term && term.toLowerCase();
var searchTextCache = {}; var searchText = _.memoize(function(pkg) {
var searchText = function(pkg) { return _([pkg.name, pkg.description, pkg.source, pkg.version, pkg.sourceURL]).compact().invoke('toLowerCase').valueOf().join(' ');
var v = searchTextCache[pkg.name]; }, function(pkg) { return pkg.name; });
if (!v)
v = searchTextCache[pkg.name] = _([pkg.name, pkg.description, pkg.source, pkg.version, pkg.sourceURL]).compact().invoke('toLowerCase').valueOf().join(' ');
return v;
};
return function(pkg) { return function(pkg) {
if (!term || !term.match(/\S/)) return true; if (!term || !term.match(/\S/)) return true;
return searchText(pkg).indexOf(t) != -1; return searchText(pkg).indexOf(t) != -1;