Skeudenn / lib/data-store / DataStore
Class: DataStore ​
Defined in: src/lib/data-store.ts:84
Holds the data and notifies subscribers per slice. null library or reading lists mean "not loaded yet"; the settings are DEFAULT_SETTINGS until loaded (see DataStore.ready).
Constructors ​
Constructor ​
new DataStore(
source):DataStore
Defined in: src/lib/data-store.ts:114
Parameters ​
source ​
Returns ​
DataStore
Properties ​
ready ​
ready:
Promise<void>
Defined in: src/lib/data-store.ts:117
Resolves once the settings are loaded, so the first render can already use the language.
Methods ​
apply() ​
apply(
change):void
Defined in: src/lib/data-store.ts:218
Applies a data:changed event from the main process.
Parameters ​
change ​
Returns ​
void
getAchievements() ​
getAchievements():
UnlockedAchievement[] |null
Defined in: src/lib/data-store.ts:136
The achievements earned, the earliest first; null until loaded.
Returns ​
UnlockedAchievement[] | null
getLibrary() ​
getLibrary():
LibraryEntry[] |null
Defined in: src/lib/data-store.ts:132
The library, most recently opened first; null until loaded. The array is replaced, never mutated.
Returns ​
LibraryEntry[] | null
getReadingLists() ​
getReadingLists():
ReadingList[] |null
Defined in: src/lib/data-store.ts:134
The reading lists in the user's order; null until loaded.
Returns ​
ReadingList[] | null
getSettings() ​
getSettings():
PublicSettings
Defined in: src/lib/data-store.ts:138
The settings.
Returns ​
getUsers() ​
getUsers():
UsersState|null
Defined in: src/lib/data-store.ts:140
The users and the active one; null until loaded.
Returns ​
UsersState | null
patchEntry() ​
patchEntry(
id,patch,persist):Promise<void>
Defined in: src/lib/data-store.ts:279
Shows patch on an entry at once, then runs persist; the main process's echo confirms it. If persist rejects, the library is reloaded (the optimistic value is dropped) and the error rethrown.
Parameters ​
id ​
string
patch ​
Partial<LibraryEntry>
persist ​
() => Promise<unknown>
Returns ​
Promise<void>
reloadAchievements() ​
reloadAchievements():
Promise<void>
Defined in: src/lib/data-store.ts:175
Fetches the earned achievements again.
Returns ​
Promise<void>
reloadLibrary() ​
reloadLibrary():
Promise<void>
Defined in: src/lib/data-store.ts:153
Fetches the whole library again.
Returns ​
Promise<void>
reloadReadingLists() ​
reloadReadingLists():
Promise<void>
Defined in: src/lib/data-store.ts:166
Fetches the reading lists again.
Returns ​
Promise<void>
reloadSettings() ​
reloadSettings():
Promise<void>
Defined in: src/lib/data-store.ts:209
Fetches the settings again.
Returns ​
Promise<void>
reloadUsers() ​
reloadUsers():
Promise<void>
Defined in: src/lib/data-store.ts:188
Fetches the users again. When the active user is not the one the store holds the data of, that data (library progress, lists, achievements, settings) is dropped at once, so no view shows or counts another user's, and loaded again.
Returns ​
Promise<void>
start() ​
start():
void
Defined in: src/lib/data-store.ts:120
Loads everything and starts listening to data:changed. Calling it again does nothing.
Returns ​
void
subscribe() ​
subscribe(
slice,listener): () =>void
Defined in: src/lib/data-store.ts:143
Calls listener after each change of slice; returns the unsubscribe function.
Parameters ​
slice ​
listener ​
() => void
Returns ​
() => void
updateSetting() ​
updateSetting<
K>(key,value,persist):Promise<void>
Defined in: src/lib/data-store.ts:299
Shows a setting's new value at once, then runs persist; if it rejects, the settings are reloaded and the error rethrown.
Type Parameters ​
K ​
K extends "language" | "pageSpacing" | "theme" | "readerBackground" | "homeEnabled" | "statsEnabled" | "achievementsEnabled" | "askUserOnStartup" | "resyncOnStartup" | "trashAutoEmpty" | "trashRetentionDays" | "backupKeep" | "readingDirection" | "addOpenedBooksToLibrary" | "libraryView" | "readingListView" | "libraryGroupBySeries" | "librarySort" | "homeSections" | "sidebarCollapsed" | "scrollDirection" | "readingMode" | "comicVineEnabled" | "googleBooksEnabled" | "bedethequeSearchByDefault" | "checkUpdatesOnStartup" | "backupIntervalDays" | "lastBackupAt" | "lastResyncAt" | "libraryOrganization" | "libraryOrganizationFolder" | "libraryStructure" | "libraryFileName" | "libraryVolumePrefix" | "libraryVolumePrefixNumericOnly" | "libraryIgnoreArticles" | "libraryArticles" | "librarySidecarCovers" | "libraryWriteNfo" | "fileNameRules" | "lookupRuleCollapsed" | "ignoredDuplicates" | "lastScanFolder"
Parameters ​
key ​
K
value ​
persist ​
() => Promise<unknown>
Returns ​
Promise<void>
upsertEntry() ​
upsertEntry(
entry):void
Defined in: src/lib/data-store.ts:294
Replaces an entry with a newer state of itself, e.g. what a metadata dialog just saved.
Parameters ​
entry ​
Returns ​
void