SPELLCHECK.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformReply = exports.transformArguments = void 0;
  4. function transformArguments(index, query, options) {
  5. const args = ['FT.SPELLCHECK', index, query];
  6. if (options?.DISTANCE) {
  7. args.push('DISTANCE', options.DISTANCE.toString());
  8. }
  9. if (options?.TERMS) {
  10. if (Array.isArray(options.TERMS)) {
  11. for (const term of options.TERMS) {
  12. pushTerms(args, term);
  13. }
  14. }
  15. else {
  16. pushTerms(args, options.TERMS);
  17. }
  18. }
  19. if (options?.DIALECT) {
  20. args.push('DIALECT', options.DIALECT.toString());
  21. }
  22. return args;
  23. }
  24. exports.transformArguments = transformArguments;
  25. function pushTerms(args, { mode, dictionary }) {
  26. args.push('TERMS', mode, dictionary);
  27. }
  28. function transformReply(rawReply) {
  29. return rawReply.map(([, term, suggestions]) => ({
  30. term,
  31. suggestions: suggestions.map(([score, suggestion]) => ({
  32. score: Number(score),
  33. suggestion
  34. }))
  35. }));
  36. }
  37. exports.transformReply = transformReply;