getSuggestion.js 808 B

123456789101112131415161718
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var editDistance = require("damerau-levenshtein");
  4. var THRESHOLD = 2;
  5. exports.getSuggestion = function (word, dictionary, limit) {
  6. if (dictionary === void 0) { dictionary = []; }
  7. if (limit === void 0) { limit = 2; }
  8. var distances = dictionary.reduce(function (suggestions, dictionaryWord) {
  9. var distance = editDistance(word.toUpperCase(), dictionaryWord.toUpperCase());
  10. var steps = distance.steps;
  11. suggestions[dictionaryWord] = steps;
  12. return suggestions;
  13. }, {});
  14. return Object.keys(distances)
  15. .filter(function (suggestion) { return distances[suggestion] <= THRESHOLD; })
  16. .sort(function (a, b) { return distances[a] - distances[b]; })
  17. .slice(0, limit);
  18. };