123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- (function() {
- var pluckCandidates, scorer, sortCandidates;
- scorer = require('./scorer');
- pluckCandidates = function(a) {
- return a.candidate;
- };
- sortCandidates = function(a, b) {
- return b.score - a.score;
- };
- module.exports = function(candidates, query, queryHasSlashes, _arg) {
- var candidate, key, maxResults, score, scoredCandidates, string, _i, _len, _ref;
- _ref = _arg != null ? _arg : {}, key = _ref.key, maxResults = _ref.maxResults;
- if (query) {
- scoredCandidates = [];
- for (_i = 0, _len = candidates.length; _i < _len; _i++) {
- candidate = candidates[_i];
- string = key != null ? candidate[key] : candidate;
- if (!string) {
- continue;
- }
- score = scorer.score(string, query, queryHasSlashes);
- if (!queryHasSlashes) {
- score = scorer.basenameScore(string, query, score);
- }
- if (score > 0) {
- scoredCandidates.push({
- candidate: candidate,
- score: score
- });
- }
- }
- scoredCandidates.sort(sortCandidates);
- candidates = scoredCandidates.map(pluckCandidates);
- }
- if (maxResults != null) {
- candidates = candidates.slice(0, maxResults);
- }
- return candidates;
- };
- }).call(this);
|