mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 06:22:45 -08:00
refactor: split startup lifecycle and Anki service architecture
This commit is contained in:
32
src/types.ts
32
src/types.ts
@@ -49,6 +49,7 @@ export interface MergedToken {
|
||||
endPos: number;
|
||||
partOfSpeech: PartOfSpeech;
|
||||
isMerged: boolean;
|
||||
isKnown: boolean;
|
||||
}
|
||||
|
||||
export interface WindowGeometry {
|
||||
@@ -150,7 +151,8 @@ export interface KikuMergePreviewResponse {
|
||||
|
||||
export type RuntimeOptionId =
|
||||
| "anki.autoUpdateNewCards"
|
||||
| "anki.kikuFieldGrouping";
|
||||
| "anki.kikuFieldGrouping"
|
||||
| "anki.nPlusOneMatchMode";
|
||||
|
||||
export type RuntimeOptionScope = "ankiConnect";
|
||||
|
||||
@@ -158,6 +160,8 @@ export type RuntimeOptionValueType = "boolean" | "enum";
|
||||
|
||||
export type RuntimeOptionValue = boolean | string;
|
||||
|
||||
export type NPlusOneMatchMode = "headword" | "surface";
|
||||
|
||||
export interface RuntimeOptionState {
|
||||
id: RuntimeOptionId;
|
||||
label: string;
|
||||
@@ -221,14 +225,20 @@ export interface AnkiConnectConfig {
|
||||
fallbackDuration?: number;
|
||||
maxMediaDuration?: number;
|
||||
};
|
||||
behavior?: {
|
||||
overwriteAudio?: boolean;
|
||||
overwriteImage?: boolean;
|
||||
mediaInsertMode?: "append" | "prepend";
|
||||
highlightWord?: boolean;
|
||||
notificationType?: "osd" | "system" | "both" | "none";
|
||||
autoUpdateNewCards?: boolean;
|
||||
nPlusOne?: {
|
||||
highlightEnabled?: boolean;
|
||||
refreshMinutes?: number;
|
||||
matchMode?: NPlusOneMatchMode;
|
||||
decks?: string[];
|
||||
};
|
||||
behavior?: {
|
||||
overwriteAudio?: boolean;
|
||||
overwriteImage?: boolean;
|
||||
mediaInsertMode?: "append" | "prepend";
|
||||
highlightWord?: boolean;
|
||||
notificationType?: "osd" | "system" | "both" | "none";
|
||||
autoUpdateNewCards?: boolean;
|
||||
};
|
||||
metadata?: {
|
||||
pattern?: string;
|
||||
};
|
||||
@@ -363,6 +373,12 @@ export interface ResolvedConfig {
|
||||
fallbackDuration: number;
|
||||
maxMediaDuration: number;
|
||||
};
|
||||
nPlusOne: {
|
||||
highlightEnabled: boolean;
|
||||
refreshMinutes: number;
|
||||
matchMode: NPlusOneMatchMode;
|
||||
decks: string[];
|
||||
};
|
||||
behavior: {
|
||||
overwriteAudio: boolean;
|
||||
overwriteImage: boolean;
|
||||
|
||||
Reference in New Issue
Block a user