UNPKG

@yext/search-core

Version:

Typescript Networking Library for the Yext Search API

46 lines 2.37 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; import { DirectAnswerType } from '../../models/searchservice/response/directanswer/DirectAnswerType'; import { ResultsFactory } from './ResultsFactory'; import { BuiltInFieldType } from '../../models/searchservice/response/directanswer/BuiltInFieldType'; var supportedFieldTypes = [ BuiltInFieldType.MultiLineText, BuiltInFieldType.RichText, BuiltInFieldType.RichText_v2, BuiltInFieldType.Markdown, BuiltInFieldType.Html ]; export function createDirectAnswer(data) { var isFieldValueDirectAnswer = (data === null || data === void 0 ? void 0 : data.type) === DirectAnswerType.FieldValue; var isFeaturedSnippetDirectAnswer = (data === null || data === void 0 ? void 0 : data.type) === DirectAnswerType.FeaturedSnippet; var commonDirectAnswerData = { value: data.answer.value, relatedResult: ResultsFactory.fromDirectAnswer(data.relatedItem.data), verticalKey: data.relatedItem.verticalConfigId, fieldType: Object.values(BuiltInFieldType).includes(data.answer.fieldType) ? data.answer.fieldType : 'unknown' }; if (isFieldValueDirectAnswer) { return __assign(__assign({ type: DirectAnswerType.FieldValue }, commonDirectAnswerData), { entityName: data.answer.entityName, fieldName: data.answer.fieldName, fieldApiName: data.answer.fieldApiName }); } else if (isFeaturedSnippetDirectAnswer) { var fieldType = commonDirectAnswerData.fieldType; if (!supportedFieldTypes.includes(fieldType)) { console.warn("Unexpected fieldType for featured snippet direct answer: ".concat(fieldType)); return undefined; } return __assign(__assign({ type: DirectAnswerType.FeaturedSnippet }, commonDirectAnswerData), { snippet: data.answer.snippet }); } else { throw new Error("The Search API returned an unknown direct answer type: ".concat(data === null || data === void 0 ? void 0 : data.type)); } } //# sourceMappingURL=createDirectAnswer.js.map