UNPKG

concepts-parser

Version:
38 lines (37 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const concept_1 = require("../concept"); const data_1 = require("../data"); function filter(concepts, context) { const sources = data_1.getKnownConcepts(context.lang); const newconcepts = []; sources.forEach((source) => { let result; while ((result = source.exec(context.text)) !== null) { let match = result[0]; let value = context.text.substr(result.index + 1, match.length - 1); let concept = new concept_1.Concept({ value: value, index: result.index + 1, lang: context.lang }); if (concept.isValid()) { concept.set("isKnown", true); newconcepts.push(concept); } } }); if (newconcepts.length > 0) { concepts = concepts.filter(function (concept) { return !newconcepts.some(function (c) { return (concept.index >= c.index && concept.index + concept.value.length <= c.index + c.value.length); }); }); concepts = concepts.concat(newconcepts).sort((a, b) => { return a.index - b.index; }); } return concepts; } exports.filter = filter;