UNPKG

@yext/search-core

Version:

Typescript Networking Library for the Yext Search API

36 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.provideCore = void 0; const SearchServiceImpl_1 = require("./infra/SearchServiceImpl"); const QuestionSubmissionServiceImpl_1 = require("./infra/QuestionSubmissionServiceImpl"); const HttpServiceImpl_1 = require("./infra/HttpServiceImpl"); const AutocompleteServiceImpl_1 = require("./infra/AutocompleteServiceImpl"); const ApiResponseValidator_1 = require("./validation/ApiResponseValidator"); const SearchCore_1 = require("./SearchCore"); const provideEndpoints_1 = require("./provideEndpoints"); const GenerativeDirectAnswerServiceImpl_1 = require("./infra/GenerativeDirectAnswerServiceImpl"); /** * The entrypoint to the search-core library. * * @remarks * Returns an {@link SearchCore} instance. * * @param config - The search-core config * * @public */ 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'); } const defaultedConfig = Object.assign(Object.assign({}, config), { endpoints: Object.assign(Object.assign({}, new provideEndpoints_1.EndpointsFactory(config).getEndpoints()), config.endpoints) }); const httpService = new HttpServiceImpl_1.HttpServiceImpl(); const apiResponseValidator = new ApiResponseValidator_1.ApiResponseValidator(); const searchService = new SearchServiceImpl_1.SearchServiceImpl(defaultedConfig, httpService, apiResponseValidator); const questionSubmissionService = new QuestionSubmissionServiceImpl_1.QuestionSubmissionServiceImpl(defaultedConfig, httpService, apiResponseValidator); const autoCompleteService = new AutocompleteServiceImpl_1.AutocompleteServiceImpl(defaultedConfig, httpService, apiResponseValidator); const generativeDirectAnswerService = new GenerativeDirectAnswerServiceImpl_1.GenerativeDirectAnswerServiceImpl(defaultedConfig, httpService, apiResponseValidator); return new SearchCore_1.SearchCore(searchService, questionSubmissionService, autoCompleteService, generativeDirectAnswerService); } exports.provideCore = provideCore; //# sourceMappingURL=provideCore.js.map