-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
55 lines (38 loc) · 1.94 KB
/
preload.js
File metadata and controls
55 lines (38 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('databaseAPI', {
//Book cover operations
getCoverPlaceholder: () => ipcRenderer.invoke('get-cover-placeholder'),
// User-related operations
insertUser: (name) => ipcRenderer.invoke('insert-user', name),
getUsers: () => ipcRenderer.invoke('get-users'),
// Book-related operations
addBook: (bookData) => ipcRenderer.invoke('add-book', bookData),
getBooks: () => ipcRenderer.invoke('get-books'),
getBookById: (id) => ipcRenderer.invoke('get-book-by-id', id),
deleteBook: (id) => ipcRenderer.invoke('delete-book', id),
updateBook: (id, bookData) => ipcRenderer.invoke('update-book', id, bookData),
// Tag-related operations
addTag: (name) => ipcRenderer.invoke('add-tag', name),
getTags: () => ipcRenderer.invoke('get-tags'),
addTagToBook: (bookId, tagId) => ipcRenderer.invoke('add-tag-to-book', bookId, tagId),
getBookTags: (bookId) => ipcRenderer.invoke('get-book-tags', bookId),
// File operations
selectEpubFile: () => ipcRenderer.invoke('select-epub-file'),
selectCoverImage: () => ipcRenderer.invoke('select-cover-image'),
// Epub metadata extraction
extractMetaData: (filePath) => ipcRenderer.invoke('extract-metadata', filePath),
// Get book cover image object
getBookCover: (id) => ipcRenderer.invoke('get-book-cover', id),
// Copy a file in to the library by drag n drop
handleEpubDrag: (fileData) => ipcRenderer.invoke('handle-epub-drag', fileData),
readEpub: (filePath) => ipcRenderer.invoke('handle-read-epub', filePath),
});
contextBridge.exposeInMainWorld('readerAPI', {
getBookPath: () => {
const urlParams = new URLSearchParams(location.search);
return urlParams.get('path');
},
getBookBuffer: (filePath) => ipcRenderer.invoke('get-epub-buffer', filePath),
openReaderWindow: (filePath) => ipcRenderer.invoke('open-reader-window', filePath),
});
console.log('databaseAPI has been exposed.');