-
-
Notifications
You must be signed in to change notification settings - Fork 0
core
André Paul Grandsire edited this page Apr 12, 2026
·
1 revision
The src/core/ directory contains platform-agnostic business logic and interfaces.
src/core/
├── interfaces/ # Abstract interfaces
│ ├── settings.ts
│ ├── persistence.ts
│ └── task-view.ts
└── utils/
└── sort.ts # Sorting utilities
Abstract interface for application settings.
export interface ISettings {
get_int(key: string): number;
set_int(key: string, value: number): void;
get_string(key: string): string;
set_string(key: string, value: string): void;
}Abstract interface for task data persistence.
import type { ITask } from '../../app.types.js';
export interface IPersistence {
load(): Promise<ITask[]>;
save(tasks: ITask[]): Promise<void>;
}Abstract interface for task display widgets.
GNOME uses src/platform/gnome/persistence/gio-persistence.ts (file-based JSON).
-
Platform Agnostic: No GTK, Adw, Gio imports in
src/core/ - Dependency Injection: Platforms inject their implementations
-
Extensibility: Add new interfaces in
src/core/interfaces/