UNPKG

@yext/search-core

Version:

Typescript Networking Library for the Yext Search API

109 lines 4.03 kB
import { Source } from '../../models/searchservice/response/Source'; /** * A factory which creates results from different sources */ var ResultsFactory = /** @class */ (function () { function ResultsFactory() { } ResultsFactory.create = function (results, source) { var _this = this; if (!results) { return []; } return results.map(function (result, index) { var resultIndex = index + 1; switch (source) { case Source.KnowledgeManager: return _this.fromKnowledgeManager(result, resultIndex); case Source.Google: return _this.fromGoogleCustomSearchEngine(result, resultIndex); case Source.DocumentVertical: return _this.fromDocumentVertical(result, resultIndex); case Source.FunctionVertical: return _this.fromFunctionVertical(result, resultIndex); default: return _this.fromCustomSource(result, resultIndex); } }); }; ResultsFactory.fromKnowledgeManager = function (result, index) { var _a; var rawData = (_a = result.data) !== null && _a !== void 0 ? _a : result; return { rawData: rawData, source: Source.KnowledgeManager, index: index, name: rawData.name, description: rawData.description, link: rawData.website, id: rawData.id, distance: result.distance, distanceFromFilter: result.distanceFromFilter, highlightedFields: result.highlightedFields, entityType: rawData.type }; }; ResultsFactory.fromDocumentVertical = function (result, index) { var _a; var rawData = (_a = result.data) !== null && _a !== void 0 ? _a : result; return { rawData: rawData, source: Source.DocumentVertical, name: rawData.name, description: rawData.description, link: rawData.website, id: rawData.id, index: index, segment: result.segment, document: result.document, documents: result.documents }; }; ResultsFactory.fromGoogleCustomSearchEngine = function (result, index) { var _a; var rawData = (_a = result.data) !== null && _a !== void 0 ? _a : result; return { rawData: rawData, source: Source.Google, index: index, name: rawData.htmlTitle.replace(/(<([^>]+)>)/ig, ''), description: rawData.htmlSnippet, link: rawData.link }; }; ResultsFactory.fromCustomSource = function (result, index) { return this.fromCustomDataHelper(result, index, Source.Custom); }; ResultsFactory.fromFunctionVertical = function (result, index) { return this.fromCustomDataHelper(result, index, Source.FunctionVertical); }; ResultsFactory.fromCustomDataHelper = function (result, index, source) { var _a; var rawData = (_a = result.data) !== null && _a !== void 0 ? _a : result; return { rawData: rawData, source: source, index: index, name: rawData.name, description: rawData.description, link: rawData.website, id: rawData.id }; }; ResultsFactory.fromDirectAnswer = function (result) { var _a; var rawData = (_a = result.fieldValues) !== null && _a !== void 0 ? _a : {}; return { rawData: rawData, source: Source.KnowledgeManager, name: rawData.name, description: rawData.description, link: result.website, id: result.id, entityType: result.type, }; }; return ResultsFactory; }()); export { ResultsFactory }; //# sourceMappingURL=ResultsFactory.js.map