UNPKG

@yext/search-core

Version:

Typescript Networking Library for the Yext Search API

43 lines 2.2 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 { SearchServiceImpl } from './infra/SearchServiceImpl'; import { QuestionSubmissionServiceImpl } from './infra/QuestionSubmissionServiceImpl'; import { HttpServiceImpl } from './infra/HttpServiceImpl'; import { AutocompleteServiceImpl } from './infra/AutocompleteServiceImpl'; import { ApiResponseValidator } from './validation/ApiResponseValidator'; import { SearchCore } from './SearchCore'; import { EndpointsFactory } from './provideEndpoints'; import { GenerativeDirectAnswerServiceImpl } from './infra/GenerativeDirectAnswerServiceImpl'; /** * The entrypoint to the search-core library. * * @remarks * Returns an {@link SearchCore} instance. * * @param config - The search-core config * * @public */ export function provideCore(config) { if ('apiKey' in config && 'token' in config) { throw new Error('Both apiKey and token are present. Only one authentication method should be provided'); } var defaultedConfig = __assign(__assign({}, config), { endpoints: __assign(__assign({}, new EndpointsFactory(config).getEndpoints()), config.endpoints) }); var httpService = new HttpServiceImpl(); var apiResponseValidator = new ApiResponseValidator(); var searchService = new SearchServiceImpl(defaultedConfig, httpService, apiResponseValidator); var questionSubmissionService = new QuestionSubmissionServiceImpl(defaultedConfig, httpService, apiResponseValidator); var autoCompleteService = new AutocompleteServiceImpl(defaultedConfig, httpService, apiResponseValidator); var generativeDirectAnswerService = new GenerativeDirectAnswerServiceImpl(defaultedConfig, httpService, apiResponseValidator); return new SearchCore(searchService, questionSubmissionService, autoCompleteService, generativeDirectAnswerService); } //# sourceMappingURL=provideCore.js.map