From 5f4f30f84b45017996fb9561709de25df3598213 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 18 Feb 2024 13:32:00 +0200 Subject: [PATCH] server-ts: Port services/options_init --- src/services/keyboard_actions.ts | 10 +------ src/services/keyboard_actions_interface.ts | 12 ++++++++ .../{options_init.js => options_init.ts} | 28 +++++++++++-------- src/services/sql_init.ts | 4 +-- 4 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 src/services/keyboard_actions_interface.ts rename src/services/{options_init.js => options_init.ts} (89%) diff --git a/src/services/keyboard_actions.ts b/src/services/keyboard_actions.ts index 8bd830cfe..667544b16 100644 --- a/src/services/keyboard_actions.ts +++ b/src/services/keyboard_actions.ts @@ -3,19 +3,11 @@ import optionService = require('./options'); import log = require('./log'); import utils = require('./utils'); +import { KeyboardShortcut } from './keyboard_actions_interface'; const isMac = process.platform === "darwin"; const isElectron = utils.isElectron(); -interface KeyboardShortcut { - separator?: string; - actionName?: string; - description?: string; - defaultShortcuts?: string[]; - effectiveShortcuts?: string[]; - scope?: string; -} - /** * Scope here means on which element the keyboard shortcuts are attached - this means that for the shortcut to work, * the focus has to be inside the element. diff --git a/src/services/keyboard_actions_interface.ts b/src/services/keyboard_actions_interface.ts new file mode 100644 index 000000000..3e3621ecd --- /dev/null +++ b/src/services/keyboard_actions_interface.ts @@ -0,0 +1,12 @@ +export interface KeyboardShortcut { + separator?: string; + actionName?: string; + description?: string; + defaultShortcuts?: string[]; + effectiveShortcuts?: string[]; + scope?: string; +} + +export interface KeyboardShortcutWithRequiredActionName extends KeyboardShortcut { + actionName: string; +} \ No newline at end of file diff --git a/src/services/options_init.js b/src/services/options_init.ts similarity index 89% rename from src/services/options_init.js rename to src/services/options_init.ts index d601353af..e2ba1520a 100644 --- a/src/services/options_init.js +++ b/src/services/options_init.ts @@ -1,16 +1,22 @@ -const optionService = require('./options'); -const appInfo = require('./app_info'); -const utils = require('./utils'); -const log = require('./log'); -const dateUtils = require('./date_utils'); -const keyboardActions = require('./keyboard_actions'); +import optionService = require('./options'); +import appInfo = require('./app_info'); +import utils = require('./utils'); +import log = require('./log'); +import dateUtils = require('./date_utils'); +import keyboardActions = require('./keyboard_actions'); +import { KeyboardShortcutWithRequiredActionName } from './keyboard_actions_interface'; function initDocumentOptions() { optionService.createOption('documentId', utils.randomSecureToken(16), false); optionService.createOption('documentSecret', utils.randomSecureToken(16), false); } -function initNotSyncedOptions(initialized, opts = {}) { +interface NotSyncedOpts { + syncServerHost?: string; + syncProxy?: string; +} + +function initNotSyncedOptions(initialized: boolean, opts: NotSyncedOpts = {}) { optionService.createOption('openNoteContexts', JSON.stringify([ { notePath: 'root', @@ -21,7 +27,7 @@ function initNotSyncedOptions(initialized, opts = {}) { optionService.createOption('lastDailyBackupDate', dateUtils.utcNowDateTime(), false); optionService.createOption('lastWeeklyBackupDate', dateUtils.utcNowDateTime(), false); optionService.createOption('lastMonthlyBackupDate', dateUtils.utcNowDateTime(), false); - optionService.createOption('dbVersion', appInfo.dbVersion, false); + optionService.createOption('dbVersion', appInfo.dbVersion.toString(), false); optionService.createOption('initialized', initialized ? 'true' : 'false', false); @@ -117,8 +123,8 @@ function initStartupOptions() { } function getKeyboardDefaultOptions() { - return keyboardActions.DEFAULT_KEYBOARD_ACTIONS - .filter(ka => !!ka.actionName) + return (keyboardActions.DEFAULT_KEYBOARD_ACTIONS + .filter(ka => !!ka.actionName) as KeyboardShortcutWithRequiredActionName[]) .map(ka => ({ name: `keyboardShortcuts${ka.actionName.charAt(0).toUpperCase()}${ka.actionName.slice(1)}`, value: JSON.stringify(ka.defaultShortcuts), @@ -126,7 +132,7 @@ function getKeyboardDefaultOptions() { })); } -module.exports = { +export = { initDocumentOptions, initNotSyncedOptions, initStartupOptions diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index af193d236..c8cae5ad2 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -84,7 +84,7 @@ async function createInitialDatabase() { notePosition: 10 }).save(); - const optionsInitService = require('./options_init.js'); + const optionsInitService = require('./options_init'); optionsInitService.initDocumentOptions(); optionsInitService.initNotSyncedOptions(true, {}); @@ -132,7 +132,7 @@ function createDatabaseForSync(options: OptionRow[], syncServerHost = '', syncPr sql.transactional(() => { sql.executeScript(schema); - require('./options_init.js').initNotSyncedOptions(false, { syncServerHost, syncProxy }); + require('./options_init').initNotSyncedOptions(false, { syncServerHost, syncProxy }); // document options required for sync to kick off for (const opt of options) {