123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- 'use strict';
- var cacheCommon = require('@algolia/cache-common');
- var cacheInMemory = require('@algolia/cache-in-memory');
- var clientAnalytics = require('@algolia/client-analytics');
- var clientCommon = require('@algolia/client-common');
- var clientPersonalization = require('@algolia/client-personalization');
- var clientSearch = require('@algolia/client-search');
- var loggerCommon = require('@algolia/logger-common');
- var requesterNodeHttp = require('@algolia/requester-node-http');
- var transporter = require('@algolia/transporter');
- function algoliasearch(appId, apiKey, options) {
- const commonOptions = {
- appId,
- apiKey,
- timeouts: {
- connect: 2,
- read: 5,
- write: 30,
- },
- requester: requesterNodeHttp.createNodeHttpRequester(),
- logger: loggerCommon.createNullLogger(),
- responsesCache: cacheCommon.createNullCache(),
- requestsCache: cacheCommon.createNullCache(),
- hostsCache: cacheInMemory.createInMemoryCache(),
- userAgent: transporter.createUserAgent(clientCommon.version).add({
- segment: 'Node.js',
- version: process.versions.node,
- }),
- };
- const searchClientOptions = { ...commonOptions, ...options };
- const initPersonalization = () => (clientOptions) => {
- return clientPersonalization.createPersonalizationClient({
- ...commonOptions,
- ...clientOptions,
- methods: {
- getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,
- setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,
- },
- });
- };
- return clientSearch.createSearchClient({
- ...searchClientOptions,
- methods: {
- search: clientSearch.multipleQueries,
- searchForFacetValues: clientSearch.multipleSearchForFacetValues,
- multipleBatch: clientSearch.multipleBatch,
- multipleGetObjects: clientSearch.multipleGetObjects,
- multipleQueries: clientSearch.multipleQueries,
- copyIndex: clientSearch.copyIndex,
- copySettings: clientSearch.copySettings,
- copyRules: clientSearch.copyRules,
- copySynonyms: clientSearch.copySynonyms,
- moveIndex: clientSearch.moveIndex,
- listIndices: clientSearch.listIndices,
- getLogs: clientSearch.getLogs,
- listClusters: clientSearch.listClusters,
- multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,
- getApiKey: clientSearch.getApiKey,
- addApiKey: clientSearch.addApiKey,
- listApiKeys: clientSearch.listApiKeys,
- updateApiKey: clientSearch.updateApiKey,
- deleteApiKey: clientSearch.deleteApiKey,
- restoreApiKey: clientSearch.restoreApiKey,
- assignUserID: clientSearch.assignUserID,
- assignUserIDs: clientSearch.assignUserIDs,
- getUserID: clientSearch.getUserID,
- searchUserIDs: clientSearch.searchUserIDs,
- listUserIDs: clientSearch.listUserIDs,
- getTopUserIDs: clientSearch.getTopUserIDs,
- removeUserID: clientSearch.removeUserID,
- hasPendingMappings: clientSearch.hasPendingMappings,
- generateSecuredApiKey: clientSearch.generateSecuredApiKey,
- getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,
- destroy: clientCommon.destroy,
- clearDictionaryEntries: clientSearch.clearDictionaryEntries,
- deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,
- getDictionarySettings: clientSearch.getDictionarySettings,
- getAppTask: clientSearch.getAppTask,
- replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,
- saveDictionaryEntries: clientSearch.saveDictionaryEntries,
- searchDictionaryEntries: clientSearch.searchDictionaryEntries,
- setDictionarySettings: clientSearch.setDictionarySettings,
- waitAppTask: clientSearch.waitAppTask,
- customRequest: clientSearch.customRequest,
- initIndex: base => (indexName) => {
- return clientSearch.initIndex(base)(indexName, {
- methods: {
- batch: clientSearch.batch,
- delete: clientSearch.deleteIndex,
- findAnswers: clientSearch.findAnswers,
- getObject: clientSearch.getObject,
- getObjects: clientSearch.getObjects,
- saveObject: clientSearch.saveObject,
- saveObjects: clientSearch.saveObjects,
- search: clientSearch.search,
- searchForFacetValues: clientSearch.searchForFacetValues,
- waitTask: clientSearch.waitTask,
- setSettings: clientSearch.setSettings,
- getSettings: clientSearch.getSettings,
- partialUpdateObject: clientSearch.partialUpdateObject,
- partialUpdateObjects: clientSearch.partialUpdateObjects,
- deleteObject: clientSearch.deleteObject,
- deleteObjects: clientSearch.deleteObjects,
- deleteBy: clientSearch.deleteBy,
- clearObjects: clientSearch.clearObjects,
- browseObjects: clientSearch.browseObjects,
- getObjectPosition: clientSearch.getObjectPosition,
- findObject: clientSearch.findObject,
- exists: clientSearch.exists,
- saveSynonym: clientSearch.saveSynonym,
- saveSynonyms: clientSearch.saveSynonyms,
- getSynonym: clientSearch.getSynonym,
- searchSynonyms: clientSearch.searchSynonyms,
- browseSynonyms: clientSearch.browseSynonyms,
- deleteSynonym: clientSearch.deleteSynonym,
- clearSynonyms: clientSearch.clearSynonyms,
- replaceAllObjects: clientSearch.replaceAllObjects,
- replaceAllSynonyms: clientSearch.replaceAllSynonyms,
- searchRules: clientSearch.searchRules,
- getRule: clientSearch.getRule,
- deleteRule: clientSearch.deleteRule,
- saveRule: clientSearch.saveRule,
- saveRules: clientSearch.saveRules,
- replaceAllRules: clientSearch.replaceAllRules,
- browseRules: clientSearch.browseRules,
- clearRules: clientSearch.clearRules,
- },
- });
- },
- initAnalytics: () => (clientOptions) => {
- return clientAnalytics.createAnalyticsClient({
- ...commonOptions,
- ...clientOptions,
- methods: {
- addABTest: clientAnalytics.addABTest,
- getABTest: clientAnalytics.getABTest,
- getABTests: clientAnalytics.getABTests,
- stopABTest: clientAnalytics.stopABTest,
- deleteABTest: clientAnalytics.deleteABTest,
- },
- });
- },
- initPersonalization,
- initRecommendation: () => (clientOptions) => {
- searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');
- return initPersonalization()(clientOptions);
- },
- },
- });
- }
- // eslint-disable-next-line functional/immutable-data
- algoliasearch.version = clientCommon.version;
- module.exports = algoliasearch;
|