From eefb3dd607099d84f6b87a0e4458e1c655db71f9 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Thu, 11 Jun 2026 15:48:04 +0200 Subject: [PATCH 1/4] feat(Extensions): auto-update --- ...un_function_when_microservices_connected.js | 18 +++++++++--------- app/utils/config.js | 16 ++++++++-------- server/api/extensions/upload.put.js | 4 ++-- ...n_when_microservices_connected.nuxt.test.js | 6 +++--- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/composables/run_function_when_microservices_connected.js b/app/composables/run_function_when_microservices_connected.js index e12371e56..72760d3c3 100644 --- a/app/composables/run_function_when_microservices_connected.js +++ b/app/composables/run_function_when_microservices_connected.js @@ -1,17 +1,17 @@ import { useInfraStore } from "@ogw_front/stores/infra"; -export function run_function_when_microservices_connected(function_to_run) { +export function runFunctionWhenMicroservicesConnected(functionToRun) { const infraStore = useInfraStore(); const { microservices_connected } = storeToRefs(infraStore); console.log("inside microservices_connected", microservices_connected.value); if (microservices_connected.value) { - function_to_run(); - } else { - watch(microservices_connected, (value) => { - if (value) { - console.log("watch microservices_connected", value); - function_to_run(); - } - }); + functionToRun(); } + watch(microservices_connected, (value) => { + if (value) { + console.log("watch microservices_connected", value); + functionToRun(); + } + }, { once: true }); + } diff --git a/app/utils/config.js b/app/utils/config.js index 4f2adef66..49a517166 100644 --- a/app/utils/config.js +++ b/app/utils/config.js @@ -27,14 +27,14 @@ function extensionsConf(projectName) { return extensionsConfig; } -function addExtensionToConf(projectName, { extensionID, extensionPath }) { +function addExtensionToConf(projectName, { extensionId, extensionPath }) { const projectConfig = projectConf(projectName); - projectConfig.set(`extensions.${extensionID}.path`, extensionPath); + projectConfig.set(`extensions.${extensionId}.path`, extensionPath); } -async function removeExtensionFromConf(projectName, extensionID) { +async function removeExtensionFromConf(projectName, extensionId) { const projectConfig = projectConf(projectName); - const extensionArchivePath = extensionPathFromConf(projectName, extensionID); + const extensionArchivePath = extensionPathFromConf(projectName, extensionId); await unlink(extensionArchivePath, (error) => { if (error) { @@ -42,13 +42,13 @@ async function removeExtensionFromConf(projectName, extensionID) { } console.log(`${extensionArchivePath} was deleted`); }); - projectConfig.delete(`extensions.${extensionID}`); - console.log(`${extensionID} was deleted from ${projectName} config`); + projectConfig.delete(`extensions.${extensionId}`); + console.log(`${extensionId} was deleted from ${projectName} config`); } -function extensionPathFromConf(projectName, extensionID) { +function extensionPathFromConf(projectName, extensionId) { const projectConfig = projectConf(projectName); - return projectConfig.get(`extensions.${extensionID}.path`); + return projectConfig.get(`extensions.${extensionId}.path`); } export { diff --git a/server/api/extensions/upload.put.js b/server/api/extensions/upload.put.js index f6f7b8ab3..7c6637c7f 100644 --- a/server/api/extensions/upload.put.js +++ b/server/api/extensions/upload.put.js @@ -83,8 +83,8 @@ export default defineEventHandler(async (event) => { const metadata = JSON.parse(metadataJson); const { id } = metadata; await addExtensionToConf(projectName, { - extensionID: id, - extensionPath: file, + extensionId: id, + extensionPath: file }); }), ); diff --git a/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js b/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js index d1d53e95c..a8d3a7695 100644 --- a/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +++ b/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js @@ -4,7 +4,7 @@ import { flushPromises } from "@vue/test-utils"; // Local imports import { Status } from "@ogw_front/utils/status"; -import { run_function_when_microservices_connected } from "@ogw_front/composables/run_function_when_microservices_connected"; +import { runFunctionWhenMicroservicesConnected } from "@ogw_front/composables/runFunctionWhenMicroservicesConnected"; import { setupActivePinia } from "@ogw_tests/utils"; import { useBackStore } from "@ogw_front/stores/back"; import { useInfraStore } from "@ogw_front/stores/infra"; @@ -40,7 +40,7 @@ describe("when_microservices_connected_run_function", () => { test("microservices not connected", () => { const spy = vi.spyOn(dumb_obj, "dumb_method"); - run_function_when_microservices_connected(dumb_obj.dumb_method); + runFunctionWhenMicroservicesConnected(dumb_obj.dumb_method); backStore.$patch({ status: Status.NOT_CONNECTED }); viewerStore.$patch({ status: Status.NOT_CONNECTED }); expect(spy).not.toHaveBeenCalled(); @@ -48,7 +48,7 @@ describe("when_microservices_connected_run_function", () => { test("microservices connected", async () => { const spy = vi.spyOn(dumb_obj, "dumb_method"); - run_function_when_microservices_connected(dumb_obj.dumb_method); + runFunctionWhenMicroservicesConnected(dumb_obj.dumb_method); backStore.$patch({ status: Status.CONNECTED }); viewerStore.$patch({ status: Status.CONNECTED }); await flushPromises(); From 1fbe4be49b30b69b60c6f4c0ed8658e80a1616dd Mon Sep 17 00:00:00 2001 From: JulienChampagnol <91873154+JulienChampagnol@users.noreply.github.com> Date: Thu, 11 Jun 2026 13:51:36 +0000 Subject: [PATCH 2/4] Apply prepare changes --- ...run_function_when_microservices_connected.js | 17 ++++++++++------- server/api/extensions/upload.put.js | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/composables/run_function_when_microservices_connected.js b/app/composables/run_function_when_microservices_connected.js index 72760d3c3..f044ef282 100644 --- a/app/composables/run_function_when_microservices_connected.js +++ b/app/composables/run_function_when_microservices_connected.js @@ -7,11 +7,14 @@ export function runFunctionWhenMicroservicesConnected(functionToRun) { if (microservices_connected.value) { functionToRun(); } - watch(microservices_connected, (value) => { - if (value) { - console.log("watch microservices_connected", value); - functionToRun(); - } - }, { once: true }); - + watch( + microservices_connected, + (value) => { + if (value) { + console.log("watch microservices_connected", value); + functionToRun(); + } + }, + { once: true }, + ); } diff --git a/server/api/extensions/upload.put.js b/server/api/extensions/upload.put.js index 7c6637c7f..5a812e9e4 100644 --- a/server/api/extensions/upload.put.js +++ b/server/api/extensions/upload.put.js @@ -84,7 +84,7 @@ export default defineEventHandler(async (event) => { const { id } = metadata; await addExtensionToConf(projectName, { extensionId: id, - extensionPath: file + extensionPath: file, }); }), ); From 8ff93b917a3fb91d4718f3125cdbfcfbbdff8a27 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Thu, 11 Jun 2026 15:54:36 +0200 Subject: [PATCH 3/4] fix import --- .../run_function_when_microservices_connected.nuxt.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js b/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js index a8d3a7695..14fb0678e 100644 --- a/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +++ b/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js @@ -4,7 +4,7 @@ import { flushPromises } from "@vue/test-utils"; // Local imports import { Status } from "@ogw_front/utils/status"; -import { runFunctionWhenMicroservicesConnected } from "@ogw_front/composables/runFunctionWhenMicroservicesConnected"; +import { runFunctionWhenMicroservicesConnected } from "@ogw_front/composables/run_function_when_microservices_connected"; import { setupActivePinia } from "@ogw_tests/utils"; import { useBackStore } from "@ogw_front/stores/back"; import { useInfraStore } from "@ogw_front/stores/infra"; From 8ca5020cd6f886b09fd55b24aa20d58f7ea02ec4 Mon Sep 17 00:00:00 2001 From: JulienChampagnol Date: Thu, 11 Jun 2026 16:21:07 +0200 Subject: [PATCH 4/4] extensionId --- app/utils/local/path.js | 4 ++-- server/api/extensions/run.post.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/utils/local/path.js b/app/utils/local/path.js index dcf903432..0d5cc0412 100644 --- a/app/utils/local/path.js +++ b/app/utils/local/path.js @@ -49,8 +49,8 @@ function generateProjectFolderPath(projectName) { return path.join(os.tmpdir(), projectName.replaceAll("/", "_"), uuidv4()); } -function extensionFolderPath(projectFolderPath, extensionID) { - return path.join(projectFolderPath, "extensions", extensionID); +function extensionFolderPath(projectFolderPath, extensionId) { + return path.join(projectFolderPath, "extensions", extensionId); } async function lookForLocalExtensionDistPath(rootPath, extentionRepoName, frontendFile) { diff --git a/server/api/extensions/run.post.js b/server/api/extensions/run.post.js index 4084ba743..355d5206d 100644 --- a/server/api/extensions/run.post.js +++ b/server/api/extensions/run.post.js @@ -25,11 +25,11 @@ export default defineEventHandler(async (event) => { const extensionsConfig = extensionsConf(projectName); const extensionsArray = await Promise.all( - Object.keys(extensionsConfig).map(async (extensionID) => { - const extensionPath = extensionsConfig[extensionID].path; + Object.keys(extensionsConfig).map(async (extensionId) => { + const extensionPath = extensionsConfig[extensionId].path; const unzippedExtensionPath = await unzipFile( extensionPath, - extensionFolderPath(projectFolderPath, extensionID), + extensionFolderPath(projectFolderPath, extensionId), ); const metadataPath = path.join(unzippedExtensionPath, "metadata.json"); const metadataContent = await fs.promises.readFile(metadataPath, "utf8");