From 9826fed9059cf7b794fc7ac0a68e45a5ce595c1c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 17 Feb 2024 19:09:36 +0200 Subject: [PATCH] server-ts: Port app* services --- bin/release.sh | 4 ++-- src/routes/assets.js | 2 +- src/routes/index.js | 2 +- src/routes/login.js | 2 +- src/routes/setup.js | 2 +- src/services/{app_icon.js => app_icon.ts} | 22 +++++++++++----------- src/services/{app_info.js => app_info.ts} | 8 ++++---- src/services/app_path.js | 6 ------ src/services/app_path.ts | 6 ++++++ src/services/asset_path.js | 3 --- src/services/asset_path.ts | 3 +++ src/services/build.js | 1 - src/services/build.ts | 1 + src/share/content_renderer.js | 2 +- src/share/routes.js | 2 +- tsconfig.json | 1 + webpack.config.js | 2 +- 17 files changed, 35 insertions(+), 34 deletions(-) rename src/services/{app_icon.js => app_icon.ts} (75%) rename src/services/{app_info.js => app_info.ts} (72%) delete mode 100644 src/services/app_path.js create mode 100644 src/services/app_path.ts delete mode 100644 src/services/asset_path.js create mode 100644 src/services/asset_path.ts delete mode 100644 src/services/build.js create mode 100644 src/services/build.ts diff --git a/bin/release.sh b/bin/release.sh index cdaa324d2..649a41437 100755 --- a/bin/release.sh +++ b/bin/release.sh @@ -26,9 +26,9 @@ jq '.version = "'$VERSION'"' package.json|sponge package.json git add package.json -echo 'module.exports = { buildDate:"'`date --iso-8601=seconds`'", buildRevision: "'`git log -1 --format="%H"`'" };' > src/services/build.js +echo 'export = { buildDate:"'`date --iso-8601=seconds`'", buildRevision: "'`git log -1 --format="%H"`'" };' > src/services/build.ts -git add src/services/build.js +git add src/services/build.ts TAG=v$VERSION diff --git a/src/routes/assets.js b/src/routes/assets.js index 3f5b81013..b6b46332c 100644 --- a/src/routes/assets.js +++ b/src/routes/assets.js @@ -1,4 +1,4 @@ -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const path = require("path"); const express = require("express"); const env = require('../services/env'); diff --git a/src/routes/index.js b/src/routes/index.js index 277d58381..6a9c27011 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -9,7 +9,7 @@ const env = require('../services/env'); const utils = require('../services/utils'); const protectedSessionService = require('../services/protected_session'); const packageJson = require('../../package.json'); -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const appPath = require('../services/app_path.js'); function index(req, res) { diff --git a/src/routes/login.js b/src/routes/login.js index 5aea1a6d5..16d773e8a 100644 --- a/src/routes/login.js +++ b/src/routes/login.js @@ -5,7 +5,7 @@ const optionService = require('../services/options'); const myScryptService = require('../services/encryption/my_scrypt'); const log = require('../services/log'); const passwordService = require('../services/encryption/password'); -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const appPath = require('../services/app_path.js'); const ValidationError = require('../errors/validation_error'); diff --git a/src/routes/setup.js b/src/routes/setup.js index fe74c68a5..ffd70e4cc 100644 --- a/src/routes/setup.js +++ b/src/routes/setup.js @@ -3,7 +3,7 @@ const sqlInit = require('../services/sql_init.js'); const setupService = require('../services/setup.js'); const utils = require('../services/utils'); -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const appPath = require('../services/app_path.js'); function setupPage(req, res) { diff --git a/src/services/app_icon.js b/src/services/app_icon.ts similarity index 75% rename from src/services/app_icon.js rename to src/services/app_icon.ts index bc845ab8c..91f85d3e9 100644 --- a/src/services/app_icon.js +++ b/src/services/app_icon.ts @@ -1,12 +1,12 @@ "use strict"; -const path = require('path'); -const {ELECTRON_APP_ROOT_DIR} = require('./resource_dir'); -const log = require('./log'); -const os = require('os'); -const fs = require('fs'); -const config = require('./config'); -const utils = require('./utils'); +import path = require('path'); +import resourceDir = require('./resource_dir'); +import log = require('./log'); +import os = require('os'); +import fs = require('fs'); +import config = require('./config'); +import utils = require('./utils'); const template = `[Desktop Entry] Type=Application @@ -28,7 +28,7 @@ function installLocalAppIcon() { return; } - if (!fs.existsSync(path.resolve(ELECTRON_APP_ROOT_DIR, "trilium-portable.sh"))) { + if (!fs.existsSync(path.resolve(resourceDir.ELECTRON_APP_ROOT_DIR, "trilium-portable.sh"))) { // simple heuristic to detect ".tar.xz" linux build (i.e., not flatpak, not debian) // only in such case it's necessary to create an icon return; @@ -56,16 +56,16 @@ function installLocalAppIcon() { function getDesktopFileContent() { return template - .replace("#APP_ROOT_DIR#", escapePath(ELECTRON_APP_ROOT_DIR)) + .replace("#APP_ROOT_DIR#", escapePath(resourceDir.ELECTRON_APP_ROOT_DIR)) .replace("#EXE_PATH#", escapePath(getExePath())); } -function escapePath(path) { +function escapePath(path: string) { return path.replace(/ /g, "\\ "); } function getExePath() { - return path.resolve(ELECTRON_APP_ROOT_DIR, 'trilium'); + return path.resolve(resourceDir.ELECTRON_APP_ROOT_DIR, 'trilium'); } module.exports = { diff --git a/src/services/app_info.js b/src/services/app_info.ts similarity index 72% rename from src/services/app_info.js rename to src/services/app_info.ts index 1d419a4bf..7b00ead5f 100644 --- a/src/services/app_info.js +++ b/src/services/app_info.ts @@ -1,8 +1,8 @@ "use strict"; -const build = require('./build.js'); -const packageJson = require('../../package.json'); -const {TRILIUM_DATA_DIR} = require('./data_dir'); +import build = require('./build'); +import packageJson = require('../../package.json'); +import dataDir = require('./data_dir'); const APP_DB_VERSION = 228; const SYNC_VERSION = 32; @@ -15,7 +15,7 @@ module.exports = { syncVersion: SYNC_VERSION, buildDate: build.buildDate, buildRevision: build.buildRevision, - dataDirectory: TRILIUM_DATA_DIR, + dataDirectory: dataDir.TRILIUM_DATA_DIR, clipperProtocolVersion: CLIPPER_PROTOCOL_VERSION, utcDateTime: new Date().toISOString() // for timezone inference }; diff --git a/src/services/app_path.js b/src/services/app_path.js deleted file mode 100644 index 9f28c9fa2..000000000 --- a/src/services/app_path.js +++ /dev/null @@ -1,6 +0,0 @@ -const assetPath = require('./asset_path.js'); -const env = require('./env'); - -module.exports = env.isDev() - ? assetPath + "/app" - : assetPath + "/app-dist"; diff --git a/src/services/app_path.ts b/src/services/app_path.ts new file mode 100644 index 000000000..3bfa7de40 --- /dev/null +++ b/src/services/app_path.ts @@ -0,0 +1,6 @@ +import assetPath = require('./asset_path'); +import env = require('./env'); + +export = env.isDev() + ? assetPath + "/app" + : assetPath + "/app-dist"; diff --git a/src/services/asset_path.js b/src/services/asset_path.js deleted file mode 100644 index a32ebc553..000000000 --- a/src/services/asset_path.js +++ /dev/null @@ -1,3 +0,0 @@ -const packageJson = require('../../package.json'); - -module.exports = `assets/v${packageJson.version}`; diff --git a/src/services/asset_path.ts b/src/services/asset_path.ts new file mode 100644 index 000000000..53ffebba9 --- /dev/null +++ b/src/services/asset_path.ts @@ -0,0 +1,3 @@ +import packageJson = require('../../package.json'); + +export = `assets/v${packageJson.version}`; diff --git a/src/services/build.js b/src/services/build.js deleted file mode 100644 index f42c6d8df..000000000 --- a/src/services/build.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { buildDate:"2024-01-21T23:49:23+01:00", buildRevision: "4f8073daa7cff1b8b6737ae45792b2e87c2adf33" }; diff --git a/src/services/build.ts b/src/services/build.ts new file mode 100644 index 000000000..3f2f1a762 --- /dev/null +++ b/src/services/build.ts @@ -0,0 +1 @@ +export = { buildDate:"2024-01-21T23:49:23+01:00", buildRevision: "4f8073daa7cff1b8b6737ae45792b2e87c2adf33" }; diff --git a/src/share/content_renderer.js b/src/share/content_renderer.js index 1097e7798..7dfd2c948 100644 --- a/src/share/content_renderer.js +++ b/src/share/content_renderer.js @@ -1,6 +1,6 @@ const {JSDOM} = require("jsdom"); const shaca = require('./shaca/shaca.js'); -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const shareRoot = require('./share_root.js'); const escapeHtml = require('escape-html'); diff --git a/src/share/routes.js b/src/share/routes.js index 9e1eb5d17..af1bf13bb 100644 --- a/src/share/routes.js +++ b/src/share/routes.js @@ -7,7 +7,7 @@ const shaca = require('./shaca/shaca.js'); const shacaLoader = require('./shaca/shaca_loader.js'); const shareRoot = require('./share_root.js'); const contentRenderer = require('./content_renderer.js'); -const assetPath = require('../services/asset_path.js'); +const assetPath = require('../services/asset_path'); const appPath = require('../services/app_path.js'); const searchService = require('../services/search/services/search.js'); const SearchContext = require('../services/search/search_context.js'); diff --git a/tsconfig.json b/tsconfig.json index 50d8ce89c..c735902a1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "outDir": "./build", "strict": true, "noImplicitAny": true, + "resolveJsonModule": true, "lib": ["ES2021"] }, "include": [ diff --git a/webpack.config.js b/webpack.config.js index 639642f52..41077c00e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,5 @@ const path = require('path'); -const assetPath = require('./src/services/asset_path.js'); +const assetPath = require('./src/services/asset_path'); module.exports = { mode: 'production',