data-transport
Version:
A simple and responsive transport
42 lines • 8.04 kB
JavaScript
import { __assign, __extends, __rest } from "tslib";
import { Transport } from '../transport';
var defaultChannel = '$$Electron_Transport$$';
var ElectronMainTransport = /** @class */ (function (_super) {
__extends(ElectronMainTransport, _super);
function ElectronMainTransport(_options) {
var ipcMain = _options.ipcMain, browserWindow = _options.browserWindow, _a = _options.channel, channel = _a === void 0 ? defaultChannel : _a, _b = _options.listener, listener = _b === void 0 ? function (callback) {
var handler = function (_, data) {
callback(data);
};
ipcMain.on(channel, handler);
return function () {
ipcMain.off(channel, handler);
};
} : _b, _c = _options.sender, sender = _c === void 0 ? function (message) { return browserWindow.webContents.send(channel, message); } : _c, options = __rest(_options, ["ipcMain", "browserWindow", "channel", "listener", "sender"]);
return _super.call(this, __assign(__assign({}, options), { listener: listener, sender: sender })) || this;
}
return ElectronMainTransport;
}(Transport));
export { ElectronMainTransport };
var ElectronRendererTransport = /** @class */ (function (_super) {
__extends(ElectronRendererTransport, _super);
function ElectronRendererTransport(_options) {
var ipcRenderer = _options.ipcRenderer, _a = _options.channel, channel = _a === void 0 ? defaultChannel : _a, _b = _options.listener, listener = _b === void 0 ? function (callback) {
var handler = function (_, data) {
callback(data);
};
ipcRenderer.on(channel, handler);
return function () {
ipcRenderer.off(channel, handler);
};
} : _b, _c = _options.sender, sender = _c === void 0 ? function (message) { return ipcRenderer.send(channel, message); } : _c, options = __rest(_options, ["ipcRenderer", "channel", "listener", "sender"]);
return _super.call(this, __assign(__assign({}, options), { listener: listener, sender: sender })) || this;
}
return ElectronRendererTransport;
}(Transport));
export { ElectronRendererTransport };
export var ElectronTransport = {
Main: ElectronMainTransport,
Renderer: ElectronRendererTransport,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb25UcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNwb3J0cy9lbGVjdHJvblRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxJQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQTRCaEQ7SUFFVSx5Q0FBWTtJQUNwQiwrQkFBWSxRQUFzQztRQUU5QyxJQUFBLE9BQU8sR0FjTCxRQUFRLFFBZEgsRUFDUCxhQUFhLEdBYVgsUUFBUSxjQWJHLEVBQ2IsS0FZRSxRQUFRLFFBWmMsRUFBeEIsT0FBTyxtQkFBRyxjQUFjLEtBQUEsRUFDeEIsS0FXRSxRQUFRLFNBSFQsRUFSRCxRQUFRLG1CQUFHLFVBQUMsUUFBUTtZQUNsQixJQUFNLE9BQU8sR0FBRyxVQUFDLENBQXdCLEVBQUUsSUFBcUI7Z0JBQzlELFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUM7WUFDRixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3QixPQUFPO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQztRQUNKLENBQUMsS0FBQSxFQUNELEtBRUUsUUFBUSxPQUY0RCxFQUF0RSxNQUFNLG1CQUFHLFVBQUMsT0FBTyxJQUFLLE9BQUEsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFoRCxDQUFnRCxLQUFBLEVBQ25FLE9BQU8sVUFDUixRQUFRLEVBZk4sNkRBZUwsQ0FEVyxDQUNDO1FBQ2IsT0FBQSxNQUFLLGtDQUNBLE9BQU8sS0FDVixRQUFRLFVBQUEsRUFDUixNQUFNLFFBQUEsSUFDTixTQUFDO0lBQ0wsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQTFCRCxDQUVVLFNBQVMsR0F3QmxCOztBQUVEO0lBRVUsNkNBQVk7SUFDcEIsbUNBQVksUUFBMEM7UUFFbEQsSUFBQSxXQUFXLEdBZ0JULFFBQVEsWUFoQkMsRUFDWCxLQWVFLFFBQVEsUUFmYyxFQUF4QixPQUFPLG1CQUFHLGNBQWMsS0FBQSxFQUN4QixLQWNFLFFBQVEsU0FIVCxFQVhELFFBQVEsbUJBQUcsVUFBQyxRQUFRO1lBQ2xCLElBQU0sT0FBTyxHQUFHLFVBQ2QsQ0FBNEIsRUFDNUIsSUFBcUI7Z0JBRXJCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUM7WUFDRixXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqQyxPQUFPO2dCQUNMLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQztRQUNKLENBQUMsS0FBQSxFQUNELEtBRUUsUUFBUSxPQUY4QyxFQUF4RCxNQUFNLG1CQUFHLFVBQUMsT0FBTyxJQUFLLE9BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQWxDLENBQWtDLEtBQUEsRUFDckQsT0FBTyxVQUNSLFFBQVEsRUFqQk4sZ0RBaUJMLENBRFcsQ0FDQztRQUNiLE9BQUEsTUFBSyxrQ0FDQSxPQUFPLEtBQ1YsUUFBUSxVQUFBLEVBQ1IsTUFBTSxRQUFBLElBQ04sU0FBQztJQUNMLENBQUM7SUFDSCxnQ0FBQztBQUFELENBQUMsQUE1QkQsQ0FFVSxTQUFTLEdBMEJsQjs7QUFFRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLFFBQVEsRUFBRSx5QkFBeUI7Q0FDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQnJvd3NlcldpbmRvdywgSXBjTWFpbiwgSXBjUmVuZGVyZXIgfSBmcm9tICdlbGVjdHJvbic7XG5pbXBvcnQgdHlwZSB7XG4gIEJhc2VJbnRlcmFjdGlvbixcbiAgTGlzdGVuZXJPcHRpb25zLFxuICBUcmFuc3BvcnRPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVHJhbnNwb3J0IH0gZnJvbSAnLi4vdHJhbnNwb3J0JztcblxuY29uc3QgZGVmYXVsdENoYW5uZWwgPSAnJCRFbGVjdHJvbl9UcmFuc3BvcnQkJCc7XG5cbmludGVyZmFjZSBFbGVjdHJvblRyYW5zcG9ydE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFRyYW5zcG9ydE9wdGlvbnM+IHtcbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBFbGVjdHJvbiBjaGFubmVsIG5hbWUuXG4gICAqL1xuICBjaGFubmVsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVsZWN0cm9uTWFpblRyYW5zcG9ydE9wdGlvbnMgZXh0ZW5kcyBFbGVjdHJvblRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogU3BlY2lmeSBhIGJyb3dzZXIgd2luZG93cyBjcmVhdGVkIGJ5IHRoZSBFbGVjdHJvbiBtYWluIHByb2Nlc3MuXG4gICAqL1xuICBicm93c2VyV2luZG93OiBCcm93c2VyV2luZG93O1xuICAvKipcbiAgICogQ29tbXVuaWNhdGUgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgbWFpbiBwcm9jZXNzIHRvIHJlbmRlcmVyIHByb2Nlc3Nlcy5cbiAgICovXG4gIGlwY01haW46IElwY01haW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWxlY3Ryb25SZW5kZXJlclRyYW5zcG9ydE9wdGlvbnNcbiAgZXh0ZW5kcyBFbGVjdHJvblRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogQ29tbXVuaWNhdGUgYXN5bmNocm9ub3VzbHkgZnJvbSBhIHJlbmRlcmVyIHByb2Nlc3MgdG8gdGhlIG1haW4gcHJvY2Vzcy5cbiAgICovXG4gIGlwY1JlbmRlcmVyOiBJcGNSZW5kZXJlcjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVsZWN0cm9uTWFpblRyYW5zcG9ydDxcbiAgVCBleHRlbmRzIEJhc2VJbnRlcmFjdGlvbiA9IGFueVxuPiBleHRlbmRzIFRyYW5zcG9ydDxUPiB7XG4gIGNvbnN0cnVjdG9yKF9vcHRpb25zOiBFbGVjdHJvbk1haW5UcmFuc3BvcnRPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgaXBjTWFpbixcbiAgICAgIGJyb3dzZXJXaW5kb3csXG4gICAgICBjaGFubmVsID0gZGVmYXVsdENoYW5uZWwsXG4gICAgICBsaXN0ZW5lciA9IChjYWxsYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKF86IEVsZWN0cm9uLklwY01haW5FdmVudCwgZGF0YTogTGlzdGVuZXJPcHRpb25zKSA9PiB7XG4gICAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICAgIH07XG4gICAgICAgIGlwY01haW4ub24oY2hhbm5lbCwgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgaXBjTWFpbi5vZmYoY2hhbm5lbCwgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgc2VuZGVyID0gKG1lc3NhZ2UpID0+IGJyb3dzZXJXaW5kb3cud2ViQ29udGVudHMuc2VuZChjaGFubmVsLCBtZXNzYWdlKSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9ID0gX29wdGlvbnM7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGxpc3RlbmVyLFxuICAgICAgc2VuZGVyLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGVjdHJvblJlbmRlcmVyVHJhbnNwb3J0PFxuICBUIGV4dGVuZHMgQmFzZUludGVyYWN0aW9uID0gYW55XG4+IGV4dGVuZHMgVHJhbnNwb3J0PFQ+IHtcbiAgY29uc3RydWN0b3IoX29wdGlvbnM6IEVsZWN0cm9uUmVuZGVyZXJUcmFuc3BvcnRPcHRpb25zKSB7XG4gICAgY29uc3Qge1xuICAgICAgaXBjUmVuZGVyZXIsXG4gICAgICBjaGFubmVsID0gZGVmYXVsdENoYW5uZWwsXG4gICAgICBsaXN0ZW5lciA9IChjYWxsYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBoYW5kbGVyID0gKFxuICAgICAgICAgIF86IEVsZWN0cm9uLklwY1JlbmRlcmVyRXZlbnQsXG4gICAgICAgICAgZGF0YTogTGlzdGVuZXJPcHRpb25zXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICB9O1xuICAgICAgICBpcGNSZW5kZXJlci5vbihjaGFubmVsLCBoYW5kbGVyKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBpcGNSZW5kZXJlci5vZmYoY2hhbm5lbCwgaGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgc2VuZGVyID0gKG1lc3NhZ2UpID0+IGlwY1JlbmRlcmVyLnNlbmQoY2hhbm5lbCwgbWVzc2FnZSksXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSA9IF9vcHRpb25zO1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBsaXN0ZW5lcixcbiAgICAgIHNlbmRlcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRWxlY3Ryb25UcmFuc3BvcnQgPSB7XG4gIE1haW46IEVsZWN0cm9uTWFpblRyYW5zcG9ydCxcbiAgUmVuZGVyZXI6IEVsZWN0cm9uUmVuZGVyZXJUcmFuc3BvcnQsXG59O1xuIl19