From 78f631373b1555c4ade56eb5b3c30cbce828e1eb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 16 Feb 2024 21:16:35 +0200 Subject: [PATCH] server-ts: cls.js -> cls.ts --- src/services/{cls.js => cls.ts} | 21 ++++++++++++--------- src/services/entity_changes.ts | 12 ++++++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) rename src/services/{cls.js => cls.ts} (81%) create mode 100644 src/services/entity_changes.ts diff --git a/src/services/cls.js b/src/services/cls.ts similarity index 81% rename from src/services/cls.js rename to src/services/cls.ts index 8e2c2870c..9fca15f54 100644 --- a/src/services/cls.js +++ b/src/services/cls.ts @@ -1,26 +1,29 @@ -const clsHooked = require('cls-hooked'); +import clsHooked = require('cls-hooked'); +import type entity_changes = require('./entity_changes'); const namespace = clsHooked.createNamespace("trilium"); -function init(callback) { +type Callback = (...args: any[]) => any; + +function init(callback: Callback) { return namespace.runAndReturn(callback); } -function wrap(callback) { +function wrap(callback: Callback) { return () => { try { init(callback); } - catch (e) { + catch (e: any) { console.log(`Error occurred: ${e.message}: ${e.stack}`); } } } -function get(key) { +function get(key: string) { return namespace.get(key); } -function set(key, value) { +function set(key: string, value: any) { namespace.set(key, value); } @@ -48,7 +51,7 @@ function isEntityEventsDisabled() { return !!namespace.get('disableEntityEvents'); } -function setMigrationRunning(running) { +function setMigrationRunning(running: boolean) { namespace.set('migrationRunning', !!running); } @@ -56,7 +59,7 @@ function isMigrationRunning() { return !!namespace.get('migrationRunning'); } -function disableSlowQueryLogging(disable) { +function disableSlowQueryLogging(disable: boolean) { namespace.set('disableSlowQueryLogging', disable); } @@ -72,7 +75,7 @@ function getAndClearEntityChangeIds() { return entityChangeIds; } -function putEntityChange(entityChange) { +function putEntityChange(entityChange: entity_changes.EntityChange) { if (namespace.get('ignoreEntityChangeIds')) { return; } diff --git a/src/services/entity_changes.ts b/src/services/entity_changes.ts new file mode 100644 index 000000000..73f4ff259 --- /dev/null +++ b/src/services/entity_changes.ts @@ -0,0 +1,12 @@ +export interface EntityChange { + id?: string; + entityName: string; + entityId: string; + hash: string; + utcDateChanged: string; + isSynced: boolean | 1 | 0; + isErased: boolean | 1 | 0; + componentId?: string | null; + changeId?: string | null; + instanceId?: string | null; +}