From 56ca0ea5d08ebffc5a2046fd0ef3a14721153910 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 17 Feb 2024 19:51:22 +0200 Subject: [PATCH] server-ts: Port migration, port, sql_init services --- docker_healthcheck.js | 2 +- electron.js | 2 +- src/anonymize.js | 2 +- src/routes/api/login.js | 2 +- src/routes/api/setup.js | 2 +- src/routes/api/sync.js | 2 +- src/routes/setup.js | 2 +- src/services/auth.js | 2 +- src/services/consistency_checks.js | 2 +- src/services/erase.js | 2 +- src/services/migration.ts | 2 +- src/services/{port.js => port.ts} | 14 +++++----- src/services/scheduler.js | 2 +- src/services/setup.js | 2 +- src/services/{sql_init.js => sql_init.ts} | 33 ++++++++++++----------- src/services/window.js | 4 +-- src/tools/generate_document.js | 2 +- 17 files changed, 40 insertions(+), 39 deletions(-) rename src/services/{port.js => port.ts} (71%) rename src/services/{sql_init.js => sql_init.ts} (87%) diff --git a/docker_healthcheck.js b/docker_healthcheck.js index 4c06a2627..88a8f3509 100755 --- a/docker_healthcheck.js +++ b/docker_healthcheck.js @@ -10,7 +10,7 @@ if (config.Network.https) { process.exit(0); } -const port = require('./src/services/port.js'); +const port = require('./src/services/port.ts'); const host = require('./src/services/host.js'); const options = { timeout: 2000 }; diff --git a/electron.js b/electron.js index 7cd04cfb2..13ba5acc5 100644 --- a/electron.js +++ b/electron.js @@ -1,7 +1,7 @@ 'use strict'; const {app, globalShortcut, BrowserWindow} = require('electron'); -const sqlInit = require('./src/services/sql_init.js'); +const sqlInit = require('./src/services/sql_init'); const appIconService = require('./src/services/app_icon.js'); const windowService = require('./src/services/window.js'); const tray = require('./src/services/tray.js'); diff --git a/src/anonymize.js b/src/anonymize.js index d857c4ef0..cb9bbe9b2 100644 --- a/src/anonymize.js +++ b/src/anonymize.js @@ -1,5 +1,5 @@ const anonymizationService = require('./services/anonymization'); -const sqlInit = require('./services/sql_init.js'); +const sqlInit = require('./services/sql_init'); require('./becca/entity_constructor.js'); sqlInit.dbReady.then(async () => { diff --git a/src/routes/api/login.js b/src/routes/api/login.js index fa16e141a..d82462992 100644 --- a/src/routes/api/login.js +++ b/src/routes/api/login.js @@ -8,7 +8,7 @@ const passwordEncryptionService = require('../../services/encryption/password_en const protectedSessionService = require('../../services/protected_session'); const appInfo = require('../../services/app_info'); const eventService = require('../../services/events'); -const sqlInit = require('../../services/sql_init.js'); +const sqlInit = require('../../services/sql_init'); const sql = require('../../services/sql'); const ws = require('../../services/ws'); const etapiTokenService = require('../../services/etapi_tokens.js'); diff --git a/src/routes/api/setup.js b/src/routes/api/setup.js index c633b3cfa..000c3c21c 100644 --- a/src/routes/api/setup.js +++ b/src/routes/api/setup.js @@ -1,6 +1,6 @@ "use strict"; -const sqlInit = require('../../services/sql_init.js'); +const sqlInit = require('../../services/sql_init'); const setupService = require('../../services/setup.js'); const log = require('../../services/log'); const appInfo = require('../../services/app_info'); diff --git a/src/routes/api/sync.js b/src/routes/api/sync.js index ab32eb671..d522e9638 100644 --- a/src/routes/api/sync.js +++ b/src/routes/api/sync.js @@ -4,7 +4,7 @@ const syncService = require('../../services/sync.js'); const syncUpdateService = require('../../services/sync_update.js'); const entityChangesService = require('../../services/entity_changes'); const sql = require('../../services/sql'); -const sqlInit = require('../../services/sql_init.js'); +const sqlInit = require('../../services/sql_init'); const optionService = require('../../services/options'); const contentHashService = require('../../services/content_hash.js'); const log = require('../../services/log'); diff --git a/src/routes/setup.js b/src/routes/setup.js index af46330c0..d3af71bef 100644 --- a/src/routes/setup.js +++ b/src/routes/setup.js @@ -1,6 +1,6 @@ "use strict"; -const sqlInit = require('../services/sql_init.js'); +const sqlInit = require('../services/sql_init'); const setupService = require('../services/setup.js'); const utils = require('../services/utils'); const assetPath = require('../services/asset_path'); diff --git a/src/services/auth.js b/src/services/auth.js index d212f6676..bf8f770ac 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -2,7 +2,7 @@ const etapiTokenService = require('./etapi_tokens.js'); const log = require('./log'); -const sqlInit = require('./sql_init.js'); +const sqlInit = require('./sql_init'); const utils = require('./utils'); const passwordEncryptionService = require('./encryption/password_encryption'); const config = require('./config'); diff --git a/src/services/consistency_checks.js b/src/services/consistency_checks.js index 60d5c57df..62ea41ca7 100644 --- a/src/services/consistency_checks.js +++ b/src/services/consistency_checks.js @@ -1,7 +1,7 @@ "use strict"; const sql = require('./sql'); -const sqlInit = require('./sql_init.js'); +const sqlInit = require('./sql_init'); const log = require('./log'); const ws = require('./ws'); const syncMutexService = require('./sync_mutex'); diff --git a/src/services/erase.js b/src/services/erase.js index 2d3fb3691..99814cf42 100644 --- a/src/services/erase.js +++ b/src/services/erase.js @@ -4,7 +4,7 @@ const log = require("./log.ts"); const entityChangesService = require("./entity_changes"); const optionService = require("./options"); const dateUtils = require("./date_utils"); -const sqlInit = require("./sql_init.js"); +const sqlInit = require("./sql_init"); const cls = require("./cls"); function eraseNotes(noteIdsToErase) { diff --git a/src/services/migration.ts b/src/services/migration.ts index 75727fda3..ca647c539 100644 --- a/src/services/migration.ts +++ b/src/services/migration.ts @@ -143,7 +143,7 @@ async function migrateIfNecessary() { } } -module.exports = { +export = { migrateIfNecessary, isDbUpToDate }; diff --git a/src/services/port.js b/src/services/port.ts similarity index 71% rename from src/services/port.js rename to src/services/port.ts index c57f22a5d..c37992d42 100644 --- a/src/services/port.js +++ b/src/services/port.ts @@ -1,9 +1,9 @@ -const config = require('./config'); -const utils = require('./utils'); -const env = require('./env'); -const dataDir = require('./data_dir'); +import config = require('./config'); +import utils = require('./utils'); +import env = require('./env'); +import dataDir = require('./data_dir'); -function parseAndValidate(portStr, source) { +function parseAndValidate(portStr: string, source: string) { const portNum = parseInt(portStr); if (isNaN(portNum) || portNum < 0 || portNum >= 65536) { @@ -14,7 +14,7 @@ function parseAndValidate(portStr, source) { return portNum; } -let port; +let port: number; if (process.env.TRILIUM_PORT) { port = parseAndValidate(process.env.TRILIUM_PORT, "environment variable TRILIUM_PORT"); @@ -24,4 +24,4 @@ if (process.env.TRILIUM_PORT) { port = parseAndValidate(config['Network']['port'] || '3000', `Network.port in ${dataDir.CONFIG_INI_PATH}`); } -module.exports = port; +export = port; diff --git a/src/services/scheduler.js b/src/services/scheduler.js index 2a712a1ce..154671bfa 100644 --- a/src/services/scheduler.js +++ b/src/services/scheduler.js @@ -1,6 +1,6 @@ const scriptService = require('./script.js'); const cls = require('./cls'); -const sqlInit = require('./sql_init.js'); +const sqlInit = require('./sql_init'); const config = require('./config'); const log = require('./log'); const attributeService = require('../services/attributes.js'); diff --git a/src/services/setup.js b/src/services/setup.js index e7125bd98..9f6af260d 100644 --- a/src/services/setup.js +++ b/src/services/setup.js @@ -1,6 +1,6 @@ const syncService = require('./sync.js'); const log = require('./log'); -const sqlInit = require('./sql_init.js'); +const sqlInit = require('./sql_init'); const optionService = require('./options'); const syncOptions = require('./sync_options.js'); const request = require('./request.js'); diff --git a/src/services/sql_init.js b/src/services/sql_init.ts similarity index 87% rename from src/services/sql_init.js rename to src/services/sql_init.ts index 7946744e4..d8f2dd2c8 100644 --- a/src/services/sql_init.js +++ b/src/services/sql_init.ts @@ -1,15 +1,16 @@ -const log = require('./log'); -const fs = require('fs'); -const resourceDir = require('./resource_dir'); -const sql = require('./sql'); -const utils = require('./utils'); -const optionService = require('./options'); -const port = require('./port.js'); -const BOption = require('../becca/entities/boption'); -const TaskContext = require('./task_context'); -const migrationService = require('./migration'); -const cls = require('./cls'); -const config = require('./config'); +import log = require('./log'); +import fs = require('fs'); +import resourceDir = require('./resource_dir'); +import sql = require('./sql'); +import utils = require('./utils'); +import optionService = require('./options'); +import port = require('./port'); +import BOption = require('../becca/entities/boption'); +import TaskContext = require('./task_context'); +import migrationService = require('./migration'); +import cls = require('./cls'); +import config = require('./config'); +import { OptionRow } from '../becca/entities/rows'; const dbReady = utils.deferred(); @@ -42,7 +43,7 @@ async function initDbConnection() { sql.execute('CREATE TEMP TABLE "param_list" (`paramId` TEXT NOT NULL PRIMARY KEY)'); - dbReady.resolve(); + dbReady.resolve(undefined); } async function createInitialDatabase() { @@ -50,7 +51,7 @@ async function createInitialDatabase() { throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, 'UTF-8'); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8"); const demoFile = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`); let rootNote; @@ -119,14 +120,14 @@ async function createInitialDatabase() { initDbConnection(); } -function createDatabaseForSync(options, syncServerHost = '', syncProxy = '') { +function createDatabaseForSync(options: OptionRow[], syncServerHost = '', syncProxy = '') { log.info("Creating database for sync"); if (isDbInitialized()) { throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, 'UTF-8'); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf8"); sql.transactional(() => { sql.executeScript(schema); diff --git a/src/services/window.js b/src/services/window.js index f411607ce..0e0fbef45 100644 --- a/src/services/window.js +++ b/src/services/window.js @@ -1,10 +1,10 @@ const path = require('path'); const url = require("url"); -const port = require('./port.js'); +const port = require('./port.ts'); const optionService = require('./options'); const env = require('./env'); const log = require('./log'); -const sqlInit = require('./sql_init.js'); +const sqlInit = require('./sql_init'); const cls = require('./cls'); const keyboardActionsService = require('./keyboard_actions'); const {ipcMain} = require('electron'); diff --git a/src/tools/generate_document.js b/src/tools/generate_document.js index 844b6e0f3..c12efbcc5 100644 --- a/src/tools/generate_document.js +++ b/src/tools/generate_document.js @@ -4,7 +4,7 @@ */ require('../becca/entity_constructor.js'); -const sqlInit = require('../services/sql_init.js'); +const sqlInit = require('../services/sql_init'); const noteService = require('../services/notes.js'); const attributeService = require('../services/attributes.js'); const cls = require('../services/cls');