25 lines
955 B
TypeScript
25 lines
955 B
TypeScript
import { contextBridge, ipcRenderer } from "electron";
|
|
import type { PagedDocumentPayload } from "@md-to-pdf/core";
|
|
import type { MarkdownRenderRequest } from "@md-to-pdf/application";
|
|
import {
|
|
DESKTOP_GET_THEME_CSS,
|
|
DESKTOP_GENERATE_PDF,
|
|
DESKTOP_LIST_THEMES,
|
|
DESKTOP_OPEN_MARKDOWN,
|
|
DESKTOP_RENDER_MARKDOWN,
|
|
DESKTOP_SAVE_PDF
|
|
} from "./channels.js";
|
|
|
|
contextBridge.exposeInMainWorld("mdToPdfDesktop", {
|
|
openMarkdown: () => ipcRenderer.invoke(DESKTOP_OPEN_MARKDOWN),
|
|
renderMarkdown: (input: MarkdownRenderRequest) =>
|
|
ipcRenderer.invoke(DESKTOP_RENDER_MARKDOWN, input),
|
|
listThemes: () => ipcRenderer.invoke(DESKTOP_LIST_THEMES),
|
|
getThemeCss: (themeId: string) =>
|
|
ipcRenderer.invoke(DESKTOP_GET_THEME_CSS, themeId),
|
|
generatePdf: (payload: PagedDocumentPayload) =>
|
|
ipcRenderer.invoke(DESKTOP_GENERATE_PDF, payload),
|
|
savePdf: (fileName: string, pdf: Uint8Array) =>
|
|
ipcRenderer.invoke(DESKTOP_SAVE_PDF, fileName, pdf)
|
|
});
|