(plugin: TaskNotesPlugin)
| 91 | } |
| 92 | |
| 93 | export async function initializeCoreServices(plugin: TaskNotesPlugin): Promise<void> { |
| 94 | plugin.api = new TaskNotesAPI(plugin); |
| 95 | |
| 96 | plugin.fieldMapper = new FieldMapper( |
| 97 | plugin.settings.fieldMapping, |
| 98 | plugin.settings.userFields ?? [], |
| 99 | plugin.settings.customStatuses, |
| 100 | plugin.settings.customPriorities |
| 101 | ); |
| 102 | plugin.statusManager = new StatusManager( |
| 103 | plugin.settings.customStatuses, |
| 104 | plugin.settings.defaultTaskStatus |
| 105 | ); |
| 106 | plugin.priorityManager = new PriorityManager(plugin.settings.customPriorities); |
| 107 | |
| 108 | plugin.requestDeduplicator = new RequestDeduplicator(); |
| 109 | plugin.predictivePrefetcher = new PredictivePrefetcher(plugin.requestDeduplicator); |
| 110 | plugin.domReconciler = new DOMReconciler(); |
| 111 | plugin.uiStateManager = new UIStateManager(); |
| 112 | |
| 113 | plugin.cacheManager = new TaskManager(plugin.app, plugin.settings, plugin.fieldMapper); |
| 114 | plugin.emitter = plugin.cacheManager; |
| 115 | plugin.registerEvent( |
| 116 | plugin.emitter.on(EVENT_USER_NOTICE, (payload: UserNoticePayload) => { |
| 117 | showNotice(payload.message, payload.timeout); |
| 118 | }) |
| 119 | ); |
| 120 | |
| 121 | plugin.dependencyCache = new DependencyCache( |
| 122 | plugin.app, |
| 123 | plugin.settings, |
| 124 | plugin.fieldMapper, |
| 125 | plugin.statusManager, |
| 126 | (frontmatter: unknown) => plugin.cacheManager.isTaskFile(frontmatter) |
| 127 | ); |
| 128 | plugin.cacheManager.setDependencyCache(plugin.dependencyCache); |
| 129 | |
| 130 | plugin.taskService = new TaskService(plugin); |
| 131 | plugin.filterService = new FilterService( |
| 132 | plugin.cacheManager, |
| 133 | plugin.statusManager, |
| 134 | plugin.priorityManager, |
| 135 | plugin |
| 136 | ); |
| 137 | plugin.taskStatsService = new TaskStatsService(plugin.cacheManager, plugin.statusManager); |
| 138 | plugin.viewStateManager = new ViewStateManager(plugin.app, plugin); |
| 139 | plugin.projectSubtasksService = new ProjectSubtasksService(plugin); |
| 140 | plugin.expandedProjectsService = new ExpandedProjectsService(plugin); |
| 141 | plugin.autoArchiveService = new AutoArchiveService(plugin); |
| 142 | |
| 143 | const { TaskSelectionService } = await import("../services/TaskSelectionService"); |
| 144 | plugin.taskSelectionService = new TaskSelectionService(plugin); |
| 145 | plugin.dragDropManager = new DragDropManager(plugin); |
| 146 | plugin.statusBarService = new StatusBarService(plugin); |
| 147 | plugin.notificationService = new NotificationService(plugin); |
| 148 | plugin.viewPerformanceService = new ViewPerformanceService(plugin); |
| 149 | |
| 150 | const { BasesFilterConverter } = await import("../services/BasesFilterConverter"); |
no test coverage detected