mirror of
https://github.com/sean2077/obsidian-dynamic-theme-background.git
synced 2026-07-22 06:44:57 +00:00
Extract 6 core services from the monolithic plugin.ts (819→284 lines): - EventBus: unified typed event system replacing 3 ad-hoc notification mechanisms - TimeRuleScheduler: pure time-rule matching and scheduling logic - StyleManager: CSS variable injection, image analysis with size caching - BackgroundManager: lifecycle, timer management, and background selection - BackgroundPersistence: immutable vault file I/O (no longer mutates BackgroundItem) - Logger: centralized logging with consistent prefix Decompose settings-tab.ts (1417→147 lines) into 4 focused sections: - BasicSettingsSection, ModeSettingsSection, BgManagementSection, ApiSettingsSection Additional improvements: - Enable TypeScript strict mode - Pin all devDependency versions for reproducible builds - Template method pattern for provider updateImageCache/deinit/fetchPage - Move safeString() to BaseWallpaperApi, consolidate ID generation - Fix 26 bugs: deleteApi missing deinit, getImages infinite loop, settings-view memory leak, manual mode bounds check, statusBar DOM leak, test API ID collision, rule lookup by .name→.id, DragSort cleanup, perPage ordering, and more
26 lines
No EOL
561 B
JSON
26 lines
No EOL
561 B
JSON
{
|
|
"compilerOptions": {
|
|
"baseUrl": ".",
|
|
"inlineSourceMap": true,
|
|
"inlineSources": true,
|
|
"module": "ESNext",
|
|
"target": "ES6",
|
|
"strict": true,
|
|
"allowJs": true,
|
|
"moduleResolution": "node",
|
|
"importHelpers": true,
|
|
"isolatedModules": true,
|
|
"lib": [
|
|
"DOM",
|
|
"ES5",
|
|
"ES6",
|
|
"ES7"
|
|
],
|
|
// other options
|
|
"resolveJsonModule": true,
|
|
"esModuleInterop": true
|
|
},
|
|
"include": [
|
|
"**/*.ts"
|
|
]
|
|
} |