algoliasearch.cjs.js 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. 'use strict';
  2. var cacheCommon = require('@algolia/cache-common');
  3. var cacheInMemory = require('@algolia/cache-in-memory');
  4. var clientAnalytics = require('@algolia/client-analytics');
  5. var clientCommon = require('@algolia/client-common');
  6. var clientPersonalization = require('@algolia/client-personalization');
  7. var clientSearch = require('@algolia/client-search');
  8. var loggerCommon = require('@algolia/logger-common');
  9. var requesterNodeHttp = require('@algolia/requester-node-http');
  10. var transporter = require('@algolia/transporter');
  11. function algoliasearch(appId, apiKey, options) {
  12. const commonOptions = {
  13. appId,
  14. apiKey,
  15. timeouts: {
  16. connect: 2,
  17. read: 5,
  18. write: 30,
  19. },
  20. requester: requesterNodeHttp.createNodeHttpRequester(),
  21. logger: loggerCommon.createNullLogger(),
  22. responsesCache: cacheCommon.createNullCache(),
  23. requestsCache: cacheCommon.createNullCache(),
  24. hostsCache: cacheInMemory.createInMemoryCache(),
  25. userAgent: transporter.createUserAgent(clientCommon.version).add({
  26. segment: 'Node.js',
  27. version: process.versions.node,
  28. }),
  29. };
  30. const searchClientOptions = { ...commonOptions, ...options };
  31. const initPersonalization = () => (clientOptions) => {
  32. return clientPersonalization.createPersonalizationClient({
  33. ...commonOptions,
  34. ...clientOptions,
  35. methods: {
  36. getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,
  37. setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,
  38. },
  39. });
  40. };
  41. return clientSearch.createSearchClient({
  42. ...searchClientOptions,
  43. methods: {
  44. search: clientSearch.multipleQueries,
  45. searchForFacetValues: clientSearch.multipleSearchForFacetValues,
  46. multipleBatch: clientSearch.multipleBatch,
  47. multipleGetObjects: clientSearch.multipleGetObjects,
  48. multipleQueries: clientSearch.multipleQueries,
  49. copyIndex: clientSearch.copyIndex,
  50. copySettings: clientSearch.copySettings,
  51. copyRules: clientSearch.copyRules,
  52. copySynonyms: clientSearch.copySynonyms,
  53. moveIndex: clientSearch.moveIndex,
  54. listIndices: clientSearch.listIndices,
  55. getLogs: clientSearch.getLogs,
  56. listClusters: clientSearch.listClusters,
  57. multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,
  58. getApiKey: clientSearch.getApiKey,
  59. addApiKey: clientSearch.addApiKey,
  60. listApiKeys: clientSearch.listApiKeys,
  61. updateApiKey: clientSearch.updateApiKey,
  62. deleteApiKey: clientSearch.deleteApiKey,
  63. restoreApiKey: clientSearch.restoreApiKey,
  64. assignUserID: clientSearch.assignUserID,
  65. assignUserIDs: clientSearch.assignUserIDs,
  66. getUserID: clientSearch.getUserID,
  67. searchUserIDs: clientSearch.searchUserIDs,
  68. listUserIDs: clientSearch.listUserIDs,
  69. getTopUserIDs: clientSearch.getTopUserIDs,
  70. removeUserID: clientSearch.removeUserID,
  71. hasPendingMappings: clientSearch.hasPendingMappings,
  72. generateSecuredApiKey: clientSearch.generateSecuredApiKey,
  73. getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,
  74. destroy: clientCommon.destroy,
  75. clearDictionaryEntries: clientSearch.clearDictionaryEntries,
  76. deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,
  77. getDictionarySettings: clientSearch.getDictionarySettings,
  78. getAppTask: clientSearch.getAppTask,
  79. replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,
  80. saveDictionaryEntries: clientSearch.saveDictionaryEntries,
  81. searchDictionaryEntries: clientSearch.searchDictionaryEntries,
  82. setDictionarySettings: clientSearch.setDictionarySettings,
  83. waitAppTask: clientSearch.waitAppTask,
  84. customRequest: clientSearch.customRequest,
  85. initIndex: base => (indexName) => {
  86. return clientSearch.initIndex(base)(indexName, {
  87. methods: {
  88. batch: clientSearch.batch,
  89. delete: clientSearch.deleteIndex,
  90. findAnswers: clientSearch.findAnswers,
  91. getObject: clientSearch.getObject,
  92. getObjects: clientSearch.getObjects,
  93. saveObject: clientSearch.saveObject,
  94. saveObjects: clientSearch.saveObjects,
  95. search: clientSearch.search,
  96. searchForFacetValues: clientSearch.searchForFacetValues,
  97. waitTask: clientSearch.waitTask,
  98. setSettings: clientSearch.setSettings,
  99. getSettings: clientSearch.getSettings,
  100. partialUpdateObject: clientSearch.partialUpdateObject,
  101. partialUpdateObjects: clientSearch.partialUpdateObjects,
  102. deleteObject: clientSearch.deleteObject,
  103. deleteObjects: clientSearch.deleteObjects,
  104. deleteBy: clientSearch.deleteBy,
  105. clearObjects: clientSearch.clearObjects,
  106. browseObjects: clientSearch.browseObjects,
  107. getObjectPosition: clientSearch.getObjectPosition,
  108. findObject: clientSearch.findObject,
  109. exists: clientSearch.exists,
  110. saveSynonym: clientSearch.saveSynonym,
  111. saveSynonyms: clientSearch.saveSynonyms,
  112. getSynonym: clientSearch.getSynonym,
  113. searchSynonyms: clientSearch.searchSynonyms,
  114. browseSynonyms: clientSearch.browseSynonyms,
  115. deleteSynonym: clientSearch.deleteSynonym,
  116. clearSynonyms: clientSearch.clearSynonyms,
  117. replaceAllObjects: clientSearch.replaceAllObjects,
  118. replaceAllSynonyms: clientSearch.replaceAllSynonyms,
  119. searchRules: clientSearch.searchRules,
  120. getRule: clientSearch.getRule,
  121. deleteRule: clientSearch.deleteRule,
  122. saveRule: clientSearch.saveRule,
  123. saveRules: clientSearch.saveRules,
  124. replaceAllRules: clientSearch.replaceAllRules,
  125. browseRules: clientSearch.browseRules,
  126. clearRules: clientSearch.clearRules,
  127. },
  128. });
  129. },
  130. initAnalytics: () => (clientOptions) => {
  131. return clientAnalytics.createAnalyticsClient({
  132. ...commonOptions,
  133. ...clientOptions,
  134. methods: {
  135. addABTest: clientAnalytics.addABTest,
  136. getABTest: clientAnalytics.getABTest,
  137. getABTests: clientAnalytics.getABTests,
  138. stopABTest: clientAnalytics.stopABTest,
  139. deleteABTest: clientAnalytics.deleteABTest,
  140. },
  141. });
  142. },
  143. initPersonalization,
  144. initRecommendation: () => (clientOptions) => {
  145. searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');
  146. return initPersonalization()(clientOptions);
  147. },
  148. },
  149. });
  150. }
  151. // eslint-disable-next-line functional/immutable-data
  152. algoliasearch.version = clientCommon.version;
  153. module.exports = algoliasearch;