From 281b0931c6791ec8617622cf86f0d02495064a9d Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 15 Feb 2024 06:53:14 +0900 Subject: [PATCH] Refactor module retrieval functions --- src/ts/process/modules.ts | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/ts/process/modules.ts b/src/ts/process/modules.ts index 83400c69..5d4401d7 100644 --- a/src/ts/process/modules.ts +++ b/src/ts/process/modules.ts @@ -99,6 +99,25 @@ function getModuleById(id:string){ return null } +let lastModules = '' +let lastModuleData:RisuModule[] = [] +export function getModules(ids:string[]){ + const idsJoined = ids.join('-') + if(lastModules === idsJoined){ + return lastModuleData + } + + let modules:RisuModule[] = [] + for(const id of ids){ + const module = getModuleById(id) + modules.push(module) + } + lastModules = idsJoined + lastModuleData = modules + return modules + +} + export function getModuleLorebooks() { const currentChat = get(CurrentChat) @@ -106,9 +125,9 @@ export function getModuleLorebooks() { if (!currentChat) return [] let moduleIds = currentChat.modules ?? [] moduleIds = moduleIds.concat(db.enabledModules) + const modules = getModules(moduleIds) let lorebooks: loreBook[] = [] - for (const moduleId of moduleIds) { - const module = getModuleById(moduleId) + for (const module of modules) { if(!module){ continue } @@ -126,9 +145,9 @@ export function getModuleTriggers() { if (!currentChat) return [] let moduleIds = currentChat.modules ?? [] moduleIds = moduleIds.concat(db.enabledModules) + const modules = getModules(moduleIds) let triggers: triggerscript[] = [] - for (const moduleId of moduleIds) { - const module = getModuleById(moduleId) + for (const module of modules) { if(!module){ continue } @@ -145,9 +164,9 @@ export function getModuleRegexScripts() { if (!currentChat) return [] let moduleIds = currentChat.modules ?? [] moduleIds = moduleIds.concat(db.enabledModules) + const modules = getModules(moduleIds) let customscripts: customscript[] = [] - for (const moduleId of moduleIds) { - const module = getModuleById(moduleId) + for (const module of modules) { if(!module){ continue }