forked from sheetjs/docs.sheetjs.com
20 lines
939 B
JavaScript
20 lines
939 B
JavaScript
|
const { contextBridge, ipcRenderer, shell } = require('electron');
|
||
|
const path = require('path');
|
||
|
const XLSX = require('xlsx');
|
||
|
|
||
|
// Because the main process is sandboxed, we need to use the contextBridge API to expose the API to the renderer process.
|
||
|
// https://www.electronjs.org/docs/latest/api/context-bridge
|
||
|
contextBridge.exposeInMainWorld('SheetJSDemoAPI', {
|
||
|
openFile: (filters) => ipcRenderer.invoke('dialog:openFile', filters),
|
||
|
saveFile: (filters) => ipcRenderer.invoke('dialog:saveFile', filters),
|
||
|
message: (msg) => ipcRenderer.invoke('dialog:message', msg),
|
||
|
openExternal: (url) => shell.openExternal(url),
|
||
|
// expose file-opened event
|
||
|
onFileOpened: (cb) => ipcRenderer.on('file-opened', (_e, fp) => cb(fp)),
|
||
|
// expose basename from path package
|
||
|
basename: (p) => path.basename(p),
|
||
|
// expose extname from path package
|
||
|
extname: (p) => path.extname(p),
|
||
|
// expose sheetjs package functions
|
||
|
xlsx: XLSX,
|
||
|
});
|