From b737bda40d1bd5db9d591f55d188ede51b417234 Mon Sep 17 00:00:00 2001
From: Marcus Schiesser <mail@marcusschiesser.de>
Date: Thu, 18 Jan 2024 08:46:08 +0700
Subject: [PATCH] refactor: encourage using parameter objects for functions
 with more than 4 parameters (#398)

---
 .eslintrc.js                                               | 3 +++
 packages/core/src/PromptHelper.ts                          | 1 +
 packages/core/src/embeddings/utils.ts                      | 3 +++
 packages/core/src/indices/summary/SummaryIndexRetriever.ts | 1 +
 packages/core/src/readers/SimpleMongoReader.ts             | 1 +
 packages/core/src/synthesizers/builders.ts                 | 1 +
 6 files changed, 10 insertions(+)

diff --git a/.eslintrc.js b/.eslintrc.js
index 5b999efa4..077771bc0 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -7,4 +7,7 @@ module.exports = {
       rootDir: ["apps/*/"],
     },
   },
+  rules: {
+    "max-params": ["error", 4],
+  },
 };
diff --git a/packages/core/src/PromptHelper.ts b/packages/core/src/PromptHelper.ts
index 556b28652..8b497df93 100644
--- a/packages/core/src/PromptHelper.ts
+++ b/packages/core/src/PromptHelper.ts
@@ -37,6 +37,7 @@ export class PromptHelper {
   tokenizer: (text: string) => Uint32Array;
   separator = " ";
 
+  // eslint-disable-next-line max-params
   constructor(
     contextWindow = DEFAULT_CONTEXT_WINDOW,
     numOutput = DEFAULT_NUM_OUTPUTS,
diff --git a/packages/core/src/embeddings/utils.ts b/packages/core/src/embeddings/utils.ts
index 097e9d78c..1e3821b87 100644
--- a/packages/core/src/embeddings/utils.ts
+++ b/packages/core/src/embeddings/utils.ts
@@ -66,6 +66,7 @@ export function similarity(
  * @param similarityCutoff minimum similarity score
  * @returns
  */
+// eslint-disable-next-line max-params
 export function getTopKEmbeddings(
   queryEmbedding: number[],
   embeddings: number[][],
@@ -108,6 +109,7 @@ export function getTopKEmbeddings(
   return [resultSimilarities, resultIds];
 }
 
+// eslint-disable-next-line max-params
 export function getTopKEmbeddingsLearner(
   queryEmbedding: number[],
   embeddings: number[][],
@@ -120,6 +122,7 @@ export function getTopKEmbeddingsLearner(
   // https://github.com/mljs/libsvm which itself hasn't been updated in a while
 }
 
+// eslint-disable-next-line max-params
 export function getTopKMMREmbeddings(
   queryEmbedding: number[],
   embeddings: number[][],
diff --git a/packages/core/src/indices/summary/SummaryIndexRetriever.ts b/packages/core/src/indices/summary/SummaryIndexRetriever.ts
index aeb703ee2..173b58d00 100644
--- a/packages/core/src/indices/summary/SummaryIndexRetriever.ts
+++ b/packages/core/src/indices/summary/SummaryIndexRetriever.ts
@@ -61,6 +61,7 @@ export class SummaryIndexLLMRetriever implements BaseRetriever {
   parseChoiceSelectAnswerFn: ChoiceSelectParserFunction;
   serviceContext: ServiceContext;
 
+  // eslint-disable-next-line max-params
   constructor(
     index: SummaryIndex,
     choiceSelectPrompt?: ChoiceSelectPrompt,
diff --git a/packages/core/src/readers/SimpleMongoReader.ts b/packages/core/src/readers/SimpleMongoReader.ts
index 1c2b0dc76..73d6bb7d5 100644
--- a/packages/core/src/readers/SimpleMongoReader.ts
+++ b/packages/core/src/readers/SimpleMongoReader.ts
@@ -36,6 +36,7 @@ export class SimpleMongoReader implements BaseReader {
    * @returns {Promise<Document[]>}
    * @throws If a field specified in fieldNames or metadataNames is not found in a MongoDB document.
    */
+  // eslint-disable-next-line max-params
   public async loadData(
     dbName: string,
     collectionName: string,
diff --git a/packages/core/src/synthesizers/builders.ts b/packages/core/src/synthesizers/builders.ts
index 460ca06e7..1e8db1ab2 100644
--- a/packages/core/src/synthesizers/builders.ts
+++ b/packages/core/src/synthesizers/builders.ts
@@ -168,6 +168,7 @@ export class Refine implements ResponseBuilder {
     return response;
   }
 
+  // eslint-disable-next-line max-params
   private async refineResponseSingle(
     initialReponse: string,
     queryStr: string,
-- 
GitLab