@geekbears/gb-mongoose-keywords-plugin
Version:
A Mongoose plugin for keyword generation
26 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractKeywordsFromField = void 0;
var lodash_1 = require("lodash");
var 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
*/
var extractKeywordsFromField = function (value, omit) {
if ((0, lodash_1.isNil)(value))
return [];
if ((0, lodash_1.isArray)(value))
return (0, lodash_1.flatten)(value.map(function (value) { return (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(function (key) { return !(0, lodash_1.isString)(value[key]); })
.map(function (key) { return (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