From 503db5d428a20b4a90e90ed217787881b4b3ea89 Mon Sep 17 00:00:00 2001 From: becem-gharbi <99251251+becem-gharbi@users.noreply.github.com> Date: Wed, 17 May 2023 15:43:19 +0100 Subject: [PATCH] refactor: move settings to index --- src/index.ts | 39 ++++++++++++++++++++++++++++++++++++--- src/settings.ts | 30 ------------------------------ src/storage.ts | 9 ++++----- tmp/default/flows | 1 - tmp/default/settings | 1 - 5 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 src/settings.ts delete mode 100644 tmp/default/flows delete mode 100644 tmp/default/settings diff --git a/src/index.ts b/src/index.ts index f04d136..48abd94 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,43 @@ import * as dotenv from "dotenv"; -dotenv.config(); - import express from "express"; import { createServer } from "http"; import nodered from "node-red"; -import { settings } from "./settings.js"; +import { LocalSettings } from "@node-red/runtime"; +import { dirname, resolve } from "path"; +import { fileURLToPath } from "url"; +import { storageModule } from "./storage.js"; +import { createStorage } from "unstorage"; +import mongodbDriver from "unstorage/drivers/mongodb"; + +dotenv.config(); + +const storage = createStorage({ + //@ts-ignore + driver: mongodbDriver({ + connectionString: process.env.MONGO_DB_URL, + databaseName: "nodeRed", + collectionName: "unstorage", + }), +}); + +const cwd = dirname(fileURLToPath(import.meta.url)); + +const settings: LocalSettings = { + httpAdminRoot: "/", + httpNodeRoot: "/api", + userDir: resolve(cwd, ".."), + nodesDir: resolve(cwd, "..", "nodes"), + functionGlobalContext: {}, + uiHost: "0.0.0.0", + uiPort: parseInt(process.env.PORT) || 8080, + credentialSecret: process.env.CREDENTIAL_SECRET || "secret", + //@ts-ignore + storageModule: storageModule, + storageSettings: { + storage: storage, + appName: process.env.APP_NAME || "default", + }, +}; const app = express(); diff --git a/src/settings.ts b/src/settings.ts deleted file mode 100644 index 6c4d608..0000000 --- a/src/settings.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { LocalSettings } from "@node-red/runtime"; -import { dirname, resolve } from "path"; -import { fileURLToPath } from "url"; -import { storageModule } from "./storage.js"; -import { createStorage } from "unstorage"; -import fsDriver from "unstorage/drivers/fs"; - -const cwd = dirname(fileURLToPath(import.meta.url)); - -const storage = createStorage({ - //@ts-ignore - driver: fsDriver({ base: "./tmp" }), -}); - -export const settings: LocalSettings = { - httpAdminRoot: "/", - httpNodeRoot: "/api", - userDir: resolve(cwd, ".."), - nodesDir: resolve(cwd, "..", "nodes"), - functionGlobalContext: {}, - uiHost: "0.0.0.0", - uiPort: parseInt(process.env.PORT) || 8080, - credentialSecret: process.env.CREDENTIAL_SECRET || "secret", - //@ts-ignore - storageModule: storageModule, - storageSettings: { - storage: storage, - appName: process.env.APP_NAME || "default", - }, -}; diff --git a/src/storage.ts b/src/storage.ts index a352bcb..f0f5494 100644 --- a/src/storage.ts +++ b/src/storage.ts @@ -2,16 +2,15 @@ import type { StorageModule } from "@node-red/runtime"; import { prefixStorage, Storage } from "unstorage"; -var appname: string; - var appStorage: Storage; var libraryStorage: Storage; export const storageModule: StorageModule = { init: ({ storageSettings }) => { - appname = storageSettings.appName; - - appStorage = prefixStorage(storageSettings.storage, appname); + appStorage = prefixStorage( + storageSettings.storage, + storageSettings.appName + ); libraryStorage = prefixStorage(appStorage, "library"); }, diff --git a/tmp/default/flows b/tmp/default/flows deleted file mode 100644 index 97a8b6a..0000000 --- a/tmp/default/flows +++ /dev/null @@ -1 +0,0 @@ -[{"id":"6dfb4bdf1ac54c22","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"0887201e20338fb8","type":"inject","z":"6dfb4bdf1ac54c22","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":240,"y":140,"wires":[["f18a2a6ae94cd838"]]},{"id":"f18a2a6ae94cd838","type":"debug","z":"6dfb4bdf1ac54c22","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":560,"y":140,"wires":[]}] \ No newline at end of file diff --git a/tmp/default/settings b/tmp/default/settings deleted file mode 100644 index cd41775..0000000 --- a/tmp/default/settings +++ /dev/null @@ -1 +0,0 @@ -{"nodes":{"node-red":{"name":"node-red","version":"3.0.2-git","local":false,"user":false,"nodes":{"junction":{"name":"junction","types":["junction"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\05-junction.js"},"inject":{"name":"inject","types":["inject"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\20-inject.js"},"debug":{"name":"debug","types":["debug"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\21-debug.js"},"complete":{"name":"complete","types":["complete"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\24-complete.js"},"catch":{"name":"catch","types":["catch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-catch.js"},"status":{"name":"status","types":["status"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\25-status.js"},"link":{"name":"link","types":["link in","link out","link call"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\60-link.js"},"comment":{"name":"comment","types":["comment"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\90-comment.js"},"unknown":{"name":"unknown","types":["unknown"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\common\\98-unknown.js"},"function":{"name":"function","types":["function"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-function.js"},"switch":{"name":"switch","types":["switch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\10-switch.js"},"change":{"name":"change","types":["change"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\15-change.js"},"range":{"name":"range","types":["range"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\16-range.js"},"template":{"name":"template","types":["template"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\80-template.js"},"delay":{"name":"delay","types":["delay"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-delay.js"},"trigger":{"name":"trigger","types":["trigger"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\89-trigger.js"},"exec":{"name":"exec","types":["exec"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\90-exec.js"},"rbe":{"name":"rbe","types":["rbe"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\function\\rbe.js"},"tls":{"name":"tls","types":["tls-config"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\05-tls.js"},"httpproxy":{"name":"httpproxy","types":["http proxy"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\06-httpproxy.js"},"mqtt":{"name":"mqtt","types":["mqtt in","mqtt out","mqtt-broker"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\10-mqtt.js"},"httpin":{"name":"httpin","types":["http in","http response"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httpin.js"},"httprequest":{"name":"httprequest","types":["http request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\21-httprequest.js"},"websocket":{"name":"websocket","types":["websocket in","websocket out","websocket-listener","websocket-client"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\22-websocket.js"},"tcpin":{"name":"tcpin","types":["tcp in","tcp out","tcp request"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\31-tcpin.js"},"udp":{"name":"udp","types":["udp in","udp out"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\network\\32-udp.js"},"CSV":{"name":"CSV","types":["csv"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-CSV.js"},"HTML":{"name":"HTML","types":["html"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-HTML.js"},"JSON":{"name":"JSON","types":["json"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-JSON.js"},"XML":{"name":"XML","types":["xml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-XML.js"},"YAML":{"name":"YAML","types":["yaml"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\parsers\\70-YAML.js"},"split":{"name":"split","types":["split","join"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\17-split.js"},"sort":{"name":"sort","types":["sort"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\18-sort.js"},"batch":{"name":"batch","types":["batch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\sequence\\19-batch.js"},"file":{"name":"file","types":["file","file in"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\10-file.js"},"watch":{"name":"watch","types":["watch"],"enabled":true,"local":false,"user":false,"module":"node-red","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@node-red\\nodes\\core\\storage\\23-watch.js"}}},"@flowforge/node-red-function-gpt":{"name":"@flowforge/node-red-function-gpt","version":"0.2.1","local":true,"user":true,"nodes":{"function-gpt":{"name":"function-gpt","types":["function-gpt"],"enabled":true,"local":true,"user":false,"module":"@flowforge/node-red-function-gpt","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@flowforge\\node-red-function-gpt\\index.js"},"chatgpt-config":{"name":"chatgpt-config","types":["chatgpt-config"],"enabled":true,"local":true,"user":false,"module":"@flowforge/node-red-function-gpt","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\@flowforge\\node-red-function-gpt\\config\\index.js"}}},"node-red-contrib-sendgrid":{"name":"node-red-contrib-sendgrid","version":"0.2.1","local":true,"user":true,"nodes":{"sendgrid":{"name":"sendgrid","types":["sendgrid"],"enabled":true,"local":true,"user":false,"module":"node-red-contrib-sendgrid","file":"C:\\Users\\becem\\Desktop\\node-red-unstorage\\node_modules\\node-red-contrib-sendgrid\\node.js"}}}},"users":{"_":{"editor":{"view":{"view-store-zoom":false,"view-store-position":false,"view-show-grid":true,"view-snap-grid":true,"view-grid-size":20,"view-node-status":true,"view-node-show-label":true,"view-show-tips":true,"view-show-welcome-tours":true},"tours":{"welcome":"3.0.2-git"}}}}} \ No newline at end of file