UNPKG

@geekbears/gb-mongoose-keywords-plugin

Version:
26 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractKeywordsFromField = void 0; const lodash_1 = require("lodash"); const extract_keywords_from_string_helper_1 = require("./extract-keywords-from-string.helper"); /** * Handle keyword generation for a given field value, regardless of its type. * Supports plain strings, arrays of strings and one-level-deep objects * * @param value the source field value. * @param omit a set of words to be omitted from the resulting keywords * @returns the resulting set of keywords. and an empty set if the value is null */ const extractKeywordsFromField = (value, omit) => { if ((0, lodash_1.isNil)(value)) return []; if ((0, lodash_1.isArray)(value)) return (0, lodash_1.flatten)(value.map(value => (0, extract_keywords_from_string_helper_1.extractKeywordsFromString)(value, omit))); if ((0, lodash_1.isObject)(value)) return (0, lodash_1.flatten)((0, lodash_1.keys)(value) .filter(key => !(0, lodash_1.isString)(value[key])) .map(key => (0, extract_keywords_from_string_helper_1.extractKeywordsFromString)(value[key], omit))); return (0, extract_keywords_from_string_helper_1.extractKeywordsFromString)(value, omit); }; exports.extractKeywordsFromField = extractKeywordsFromField; //# sourceMappingURL=extract-keywords-from-field.helper.js.map