42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const ipc_renderer_internal_1 = require("@electron/internal/renderer/ipc-renderer-internal");
|
||
|
const errorUtils = require("@electron/internal/common/error-utils");
|
||
|
exports.handle = function (channel, handler) {
|
||
|
ipc_renderer_internal_1.ipcRendererInternal.on(channel, (event, requestId, ...args) => {
|
||
|
new Promise(resolve => resolve(handler(event, ...args))).then(result => {
|
||
|
return [null, result];
|
||
|
}, error => {
|
||
|
return [errorUtils.serialize(error)];
|
||
|
}).then(responseArgs => {
|
||
|
event.sender.send(`${channel}_RESPONSE_${requestId}`, ...responseArgs);
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
let nextId = 0;
|
||
|
function invoke(command, ...args) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const requestId = ++nextId;
|
||
|
ipc_renderer_internal_1.ipcRendererInternal.once(`${command}_RESPONSE_${requestId}`, (_event, error, result) => {
|
||
|
if (error) {
|
||
|
reject(errorUtils.deserialize(error));
|
||
|
}
|
||
|
else {
|
||
|
resolve(result);
|
||
|
}
|
||
|
});
|
||
|
ipc_renderer_internal_1.ipcRendererInternal.send(command, requestId, ...args);
|
||
|
});
|
||
|
}
|
||
|
exports.invoke = invoke;
|
||
|
function invokeSync(command, ...args) {
|
||
|
const [error, result] = ipc_renderer_internal_1.ipcRendererInternal.sendSync(command, null, ...args);
|
||
|
if (error) {
|
||
|
throw errorUtils.deserialize(error);
|
||
|
}
|
||
|
else {
|
||
|
return result;
|
||
|
}
|
||
|
}
|
||
|
exports.invokeSync = invokeSync;
|
||
|
//# sourceMappingURL=ipc-renderer-internal-utils.js.map
|