diff --git a/app/utils/local.js b/app/utils/local.js index 3cef5bef..fd3183b2 100644 --- a/app/utils/local.js +++ b/app/utils/local.js @@ -3,6 +3,7 @@ import child_process from "node:child_process" import fs from "node:fs" import path from "node:path" import { setTimeout } from "timers/promises" +import { rimraf } from "rimraf" // Third party imports import { WebSocket } from "ws" @@ -182,7 +183,7 @@ async function delete_folder_recursive(data_folder_path) { for (let i = 0; i <= MAX_DELETE_FOLDER_RETRIES; i += 1) { try { console.log(`Deleting folder: ${data_folder_path}`) - fs.rmSync(data_folder_path, { recursive: true, force: true }) + await rimraf(data_folder_path) console.log(`Deleted folder: ${data_folder_path}`) return } catch (error) { @@ -190,6 +191,7 @@ async function delete_folder_recursive(data_folder_path) { // Wait before retrying const DELAY = 1000 * (i + 1) await setTimeout(DELAY) + console.log("Retrying delete folder") } } } @@ -209,52 +211,52 @@ function kill_back(back_port) { } } return pTimeout(do_kill(), { - milliseconds: 500, + milliseconds: 5000, message: "Failed to kill back", }) } function kill_viewer(viewer_port) { - async function do_kill() { - const socket = new WebSocket(`ws://localhost:${viewer_port}/ws`) - try { - await once(socket, "open") - console.log("Connected to WebSocket server") - socket.send( - JSON.stringify({ - id: "system:hello", - method: "wslink.hello", - args: [{ secret: "wslink-secret" }], - }), - ) - - for await (const [data] of on(socket, "message")) { + function do_kill() { + return new Promise((resolve) => { + const socket = new WebSocket("ws://localhost:" + viewer_port + "/ws") + socket.on("open", () => { + console.log("Connected to WebSocket server") + socket.send( + JSON.stringify({ + id: "system:hello", + method: "wslink.hello", + args: [{ secret: "wslink-secret" }], + }), + ) + }) + socket.on("message", (data) => { const message = data.toString() console.log("Received from server:", message) - if (message.includes("hello")) { socket.send( JSON.stringify({ - id: viewer_schemas.opengeodeweb_viewer.kill.$id, - method: viewer_schemas.opengeodeweb_viewer.kill.$id, + id: "application.exit", + method: "application.exit", }), ) - break + socket.close() + resolve() } - } - await once(socket, "close") - console.log("Disconnected from WebSocket server") - } catch (error) { - console.error("WebSocket error:", error) - } finally { - if (socket.readyState === WebSocket.OPEN) { + }) + socket.on("close", () => { + console.log("Disconnected from WebSocket server") + resolve() + }) + socket.on("error", (error) => { + console.error("WebSocket error:", error) socket.close() - } - } + resolve() + }) + }) } - return pTimeout(do_kill(), { - milliseconds: 500, + milliseconds: 5000, message: "Failed to kill viewer", }) } diff --git a/package.json b/package.json index 01bd5c53..a949c44e 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,26 @@ { "name": "@geode/opengeodeweb-front", + "version": "0.0.0", "description": "OpenSource Vue/Nuxt/Pinia/Vuetify framework for web applications", + "homepage": "https://github.com/Geode-solutions/OpenGeodeWeb-Front", + "bugs": { + "url": "https://github.com/Geode-solutions/OpenGeodeWeb-Front/issues" + }, + "license": "MIT", + "author": { + "name": "Geode-solutions", + "email": "contact@geode-solutions.com", + "url": "https://geode-solutions.com/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Geode-solutions/OpenGeodeWeb-Front.git" + }, "type": "module", - "version": "0.0.0", "main": "./nuxt.config.js", + "publishConfig": { + "access": "public" + }, "scripts": { "lint": "eslint --fix --ext .js,.vue --ignore-path .gitignore .", "test": "npm run test:unit", @@ -31,7 +48,8 @@ "nuxt": "4.2.2", "p-timeout": "7.0.1", "pinia": "3.0.4", - "rxjs": "^7.8.2", + "rimraf": "6.1.3", + "rxjs": "7.8.2", "sass": "1.87.0", "semver": "7.7.1", "uuid": "11.1.0", @@ -70,22 +88,5 @@ }, "overrides": { "vue": "latest" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Geode-solutions/OpenGeodeWeb-Front.git" - }, - "author": { - "name": "Geode-solutions", - "email": "contact@geode-solutions.com", - "url": "https://geode-solutions.com/" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/Geode-solutions/OpenGeodeWeb-Front/issues" - }, - "homepage": "https://github.com/Geode-solutions/OpenGeodeWeb-Front", - "publishConfig": { - "access": "public" } } diff --git a/tests/integration/microservices/back/requirements.txt b/tests/integration/microservices/back/requirements.txt index c4caed69..bd3a3ef5 100644 --- a/tests/integration/microservices/back/requirements.txt +++ b/tests/integration/microservices/back/requirements.txt @@ -5,4 +5,3 @@ # pip-compile --output-file=tests/integration/microservices/back/requirements.txt tests/integration/microservices/back/requirements.in # -opengeodeweb-back==6.*,>=6.1.3 diff --git a/tests/integration/microservices/viewer/requirements.txt b/tests/integration/microservices/viewer/requirements.txt index 5922c2c7..4d097394 100644 --- a/tests/integration/microservices/viewer/requirements.txt +++ b/tests/integration/microservices/viewer/requirements.txt @@ -5,4 +5,3 @@ # pip-compile --output-file=tests/integration/microservices/viewer/requirements.txt tests/integration/microservices/viewer/requirements.in # -opengeodeweb-viewer==1.*,>=1.15.3