@imranbarbhuiya/mongoose-fuzzy-searching
Version:
Mongoose fuzzy searching plugin
48 lines (47 loc) • 2.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareQuery = exports.prepareNgrams = exports.isString = exports.isFunction = exports.isObject = exports.replaceSymbols = void 0;
var config_1 = __importDefault(require("../config"));
var languageCharacters_1 = __importDefault(require("./languageCharacters"));
var replaceSymbols = function (text, escapeSpecialCharacters) {
text = text.toLowerCase();
if (escapeSpecialCharacters) {
text = text.replace(/[!"#%&'()*+,-./:;<=>?@[\\\]^`{|}~]/g, ""); // remove special characters
}
text = text.replace(/_/g, " ");
text = (0, languageCharacters_1.default)(text);
return text;
};
exports.replaceSymbols = replaceSymbols;
var isObject = function (obj) {
return !!obj && obj.constructor === Object && Object.keys(obj).length > 0;
};
exports.isObject = isObject;
var isFunction = function (fn) {
return !!(fn && (typeof fn === "function" || fn instanceof Function));
};
exports.isFunction = isFunction;
var isString = function (input) {
return typeof input === "string" || input instanceof String;
};
exports.isString = isString;
var prepareNgrams = function (ngramsOptions) {
var escapeSpecialCharacters = ngramsOptions.escapeSpecialCharacters, minSize = ngramsOptions.minSize, prefixOnly = ngramsOptions.prefixOnly, text = ngramsOptions.text;
return {
escapeSpecialCharacters: escapeSpecialCharacters || config_1.default.ESCAPE_SPECIAL_CHARACTERS,
minSize: minSize || config_1.default.DEFAULT_MIN_SIZE,
prefixOnly: prefixOnly || config_1.default.DEFAULT_PREFIX_ONLY,
text: text || "",
};
};
exports.prepareNgrams = prepareNgrams;
var prepareQuery = function (query, options) { return ({
query: query,
exact: (options === null || options === void 0 ? void 0 : options.exact) || config_1.default.DEFAULT_EXACT_SEARCH,
prefixOnly: (options === null || options === void 0 ? void 0 : options.prefixOnly) || config_1.default.DEFAULT_PREFIX_ONLY,
minSize: (options === null || options === void 0 ? void 0 : options.minSize) || config_1.default.DEFAULT_MIN_SIZE,
}); };
exports.prepareQuery = prepareQuery;