mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	refactor: further improve task context types
This commit is contained in:
		| @@ -82,7 +82,7 @@ ws.subscribeToMessages(async (message) => { | ||||
|  | ||||
|         toastService.showPersistent(toast); | ||||
|  | ||||
|         if (typeof message.result === "object" && message.result.importedNoteId) { | ||||
|         if (message.result.importedNoteId) { | ||||
|             await appContext.tabManager.getActiveContext()?.setNote(message.result.importedNoteId); | ||||
|         } | ||||
|     } | ||||
| @@ -104,7 +104,7 @@ ws.subscribeToMessages(async (message: WebSocketMessage) => { | ||||
|  | ||||
|         toastService.showPersistent(toast); | ||||
|  | ||||
|         if (typeof message.result === "object" && message.result.parentNoteId) { | ||||
|         if (message.result.parentNoteId) { | ||||
|             await appContext.tabManager.getActiveContext()?.setNote(message.result.importedNoteId, { | ||||
|                 viewScope: { | ||||
|                     viewMode: "attachments" | ||||
|   | ||||
| @@ -1,20 +1,20 @@ | ||||
| "use strict"; | ||||
|  | ||||
| import type { TaskData } from "@triliumnext/commons"; | ||||
| import type { TaskType } from "@triliumnext/commons"; | ||||
| import ws from "./ws.js"; | ||||
|  | ||||
| // taskId => TaskContext | ||||
| const taskContexts: Record<string, TaskContext> = {}; | ||||
| const taskContexts: Record<string, TaskContext<TaskType>> = {}; | ||||
|  | ||||
| class TaskContext { | ||||
| class TaskContext<TaskTypeT extends TaskType> { | ||||
|     private taskId: string; | ||||
|     private taskType: string | null; | ||||
|     private taskType: TaskType; | ||||
|     private progressCount: number; | ||||
|     private lastSentCountTs: number; | ||||
|     data: TaskData | null; | ||||
|     noteDeletionHandlerTriggered: boolean; | ||||
|  | ||||
|     constructor(taskId: string, taskType: string | null = null, data: {} | null = {}) { | ||||
|     constructor(taskId: string, taskType: TaskTypeT, data: {} | null = {}) { | ||||
|         this.taskId = taskId; | ||||
|         this.taskType = taskType; | ||||
|         this.data = data; | ||||
| @@ -31,7 +31,7 @@ class TaskContext { | ||||
|         this.increaseProgressCount(); | ||||
|     } | ||||
|  | ||||
|     static getInstance(taskId: string, taskType: string, data: {} | null = null): TaskContext { | ||||
|     static getInstance<TaskTypeT extends TaskType>(taskId: string, taskType: TaskTypeT, data: {} | null = null): TaskContext<TaskTypeT> { | ||||
|         if (!taskContexts[taskId]) { | ||||
|             taskContexts[taskId] = new TaskContext(taskId, taskType, data); | ||||
|         } | ||||
|   | ||||
| @@ -271,7 +271,7 @@ export interface EntityChangeRecord { | ||||
|     entity?: EntityRow; | ||||
| } | ||||
|  | ||||
| type TaskStatus<TypeT, DataT> = { | ||||
| type TaskStatus<TypeT, DataT, ResultT> = { | ||||
|     type: "taskProgressCount", | ||||
|     taskId: string; | ||||
|     taskType: TypeT; | ||||
| @@ -288,18 +288,20 @@ type TaskStatus<TypeT, DataT> = { | ||||
|     taskId: string; | ||||
|     taskType: TypeT; | ||||
|     data: DataT; | ||||
|     result?: string | Record<string, string | undefined> | ||||
|     result: ResultT; | ||||
| } | ||||
|  | ||||
| type TaskDefinitions = | ||||
|     TaskStatus<"protectNotes", { protect: boolean; }> | ||||
|     | TaskStatus<"importNotes", null> | ||||
|     | TaskStatus<"importAttachments", null> | ||||
|     | TaskStatus<"deleteNotes", null> | ||||
|     | TaskStatus<"undeleteNotes", null> | ||||
|     | TaskStatus<"export", null> | ||||
|     TaskStatus<"protectNotes", { protect: boolean; }, null> | ||||
|     | TaskStatus<"importNotes", null, { importedNoteId: string }> | ||||
|     | TaskStatus<"importAttachments", null, { parentNoteId?: string; importedNoteId: string }> | ||||
|     | TaskStatus<"deleteNotes", null, null> | ||||
|     | TaskStatus<"undeleteNotes", null, null> | ||||
|     | TaskStatus<"export", null, null> | ||||
| ; | ||||
|  | ||||
| export type TaskType = TaskDefinitions["taskType"]; | ||||
|  | ||||
| export interface OpenedFileUpdateStatus { | ||||
|     entityType: string; | ||||
|     entityId: string; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user