Tankōbon / lib/data-store / DataStore
Class: DataStore
Defined in: 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: lib/data-store.ts:108
Parameters
source
Returns
DataStore
Properties
ready
ready:
Promise<void>
Defined in: lib/data-store.ts:111
Resolves once the settings are loaded, so the first render can already use the language.
Methods
apply()
apply(
change):void
Defined in: lib/data-store.ts:208
Applies a data:changed event from the main process.
Parameters
change
Returns
void
getAchievements()
getAchievements():
UnlockedAchievement[] |null
Defined in: lib/data-store.ts:130
The achievements earned, the earliest first; null until loaded.
Returns
UnlockedAchievement[] | null
getLibrary()
getLibrary():
LibraryEntry[] |null
Defined in: lib/data-store.ts:126
The library, most recently opened first; null until loaded. The array is replaced, never mutated.
Returns
LibraryEntry[] | null
getReadingLists()
getReadingLists():
ReadingList[] |null
Defined in: lib/data-store.ts:128
The reading lists in the user's order; null until loaded.
Returns
ReadingList[] | null
getSettings()
getSettings():
PublicSettings
Defined in: lib/data-store.ts:132
The settings.
Returns
getUsers()
getUsers():
UsersState|null
Defined in: lib/data-store.ts:134
The users and the active one; null until loaded.
Returns
UsersState | null
patchEntry()
patchEntry(
id,patch,persist):Promise<void>
Defined in: lib/data-store.ts:268
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: lib/data-store.ts:165
Fetches the earned achievements again.
Returns
Promise<void>
reloadLibrary()
reloadLibrary():
Promise<void>
Defined in: lib/data-store.ts:147
Fetches the whole library again.
Returns
Promise<void>
reloadReadingLists()
reloadReadingLists():
Promise<void>
Defined in: lib/data-store.ts:156
Fetches the reading lists again.
Returns
Promise<void>
reloadSettings()
reloadSettings():
Promise<void>
Defined in: lib/data-store.ts:199
Fetches the settings again.
Returns
Promise<void>
reloadUsers()
reloadUsers():
Promise<void>
Defined in: lib/data-store.ts:178
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: lib/data-store.ts:114
Loads everything and starts listening to data:changed. Calling it again does nothing.
Returns
void
subscribe()
subscribe(
slice,listener): () =>void
Defined in: lib/data-store.ts:137
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: lib/data-store.ts:288
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" | "resyncOnStartup" | "askUserOnStartup" | "readingDirection" | "addOpenedBooksToLibrary" | "libraryView" | "readingListView" | "libraryGroupBySeries" | "librarySort" | "homeEnabled" | "homeSections" | "sidebarCollapsed" | "scrollDirection" | "readingMode" | "comicVineEnabled" | "googleBooksEnabled" | "checkUpdatesOnStartup" | "lastResyncAt" | "libraryOrganization" | "libraryOrganizationFolder" | "libraryStructure" | "libraryFileName" | "lastScanFolder"
Parameters
key
K
value
persist
() => Promise<unknown>
Returns
Promise<void>
upsertEntry()
upsertEntry(
entry):void
Defined in: lib/data-store.ts:283
Replaces an entry with a newer state of itself, e.g. what a metadata dialog just saved.
Parameters
entry
Returns
void