Просмотр исходного кода

refactoring elasticsearch-client

Shun Miyazawa 2 лет назад
Родитель
Сommit
bd97ded1ed
1 измененных файлов с 11 добавлено и 4 удалено
  1. 11 4
      apps/app/src/server/service/search-delegator/elasticsearch-client.ts

+ 11 - 4
apps/app/src/server/service/search-delegator/elasticsearch-client.ts

@@ -22,6 +22,9 @@ import {
   ReindexResponse,
 } from './elasticsearch-client-types';
 
+
+type ESClientOptions = ES7ClientOptions | ES8ClientOptions;
+
 // Type guard for ES7ClientOptions
 const isES7Options = (options: any): options is ES7ClientOptions => {
   return options.ssl != null;
@@ -31,19 +34,23 @@ export default class ElasticsearchClient {
 
   client: ES7Client | ES8Client;
 
-  constructor(isES7: boolean, options: ES7ClientOptions | ES8ClientOptions, rejectUnauthorized: boolean) {
+  constructor(isES7: boolean, options: ES7ClientOptions, rejectUnauthorized: boolean)
+
+  constructor(isES7: boolean, options: ES8ClientOptions, rejectUnauthorized: boolean)
+
+  constructor(isES7: boolean, options: ESClientOptions, rejectUnauthorized = false) {
 
     const encryptionOption = isES7
       ? { ssl: { rejectUnauthorized } }
       : { tls: { rejectUnauthorized } };
 
-    const esOptions = { ...options, ...encryptionOption };
+    const esOptions: ESClientOptions = { ...options, ...encryptionOption };
 
-    if (isES7 && isES7Options(esOptions)) {
+    if (isES7Options(esOptions)) {
       this.client = new ES7Client(esOptions);
     }
     else {
-      this.client = new ES8Client(esOptions as ES8ClientOptions);
+      this.client = new ES8Client(esOptions);
     }
   }