12345678910111213141516171819202122232425262728 |
- import { EventEmitter } from 'events';
- export class MessagePortMain extends EventEmitter implements Electron.MessagePortMain {
- _internalPort: any;
- constructor (internalPort: any) {
- super();
- this._internalPort = internalPort;
- this._internalPort.emit = (channel: string, event: {ports: any[]}) => {
- if (channel === 'message') { event = { ...event, ports: event.ports.map(p => new MessagePortMain(p)) }; }
- this.emit(channel, event);
- };
- }
- start () {
- return this._internalPort.start();
- }
- close () {
- return this._internalPort.close();
- }
- postMessage (...args: any[]) {
- if (Array.isArray(args[1])) {
- args[1] = args[1].map((o: any) => o instanceof MessagePortMain ? o._internalPort : o);
- }
- return this._internalPort.postMessage(...args);
- }
- }
|