UNPKG

concepts-parser

Version:
59 lines (58 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const MODE_COLLECT = "collect"; const MODE_IDENTIFY = "identify"; const FILTERS_BY_MODE = { collect: [ "invalid_prefix", "abbr", "invalid", "partial", "prefix", "suffix", "start_word", "known", "quote", "duplicate" ], identify: [ "invalid_prefix", "abbr", "invalid", "prefix", "suffix", "known", "quote" ] }; function getFilter(name) { return require("./" + name); } function filter(concepts, context, options = { mode: MODE_IDENTIFY }) { let filters = []; if (options.mode) { switch (options.mode) { case MODE_COLLECT: filters = FILTERS_BY_MODE[MODE_COLLECT]; break; case MODE_IDENTIFY: filters = FILTERS_BY_MODE[MODE_IDENTIFY]; break; default: throw new Error("invalid filter mode " + options.mode); } } else { if (Array.isArray(options.filters)) { filters = options.filters; } else { throw new Error("`filters` fields is invalid!"); } } for (let name of filters) { concepts = getFilter(name).filter(concepts, context); } return concepts; } exports.filter = filter;