41 lines
1.2 KiB
JavaScript
Executable File
41 lines
1.2 KiB
JavaScript
Executable File
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.SignalAdapter = exports.Signal = void 0;
|
|
class Signal {
|
|
constructor(signals, name) {
|
|
this.signals = signals;
|
|
this.name = name;
|
|
}
|
|
connect(handler) {
|
|
this.signals.connect(this.name, handler);
|
|
}
|
|
disconnect(handler) {
|
|
this.signals.disconnect(this.name, handler);
|
|
}
|
|
}
|
|
exports.Signal = Signal;
|
|
class SignalAdapter {
|
|
constructor(signals) {
|
|
this.signals = signals;
|
|
this.proxyHandlers = new Map();
|
|
}
|
|
connect(name, handler) {
|
|
const proxyHandler = this.getProxy(name, handler);
|
|
if (proxyHandler !== null) {
|
|
this.proxyHandlers.set(handler, proxyHandler);
|
|
this.signals.connect(name, proxyHandler);
|
|
}
|
|
else {
|
|
this.signals.connect(name, handler);
|
|
}
|
|
}
|
|
disconnect(name, handler) {
|
|
const proxyHandler = this.proxyHandlers.get(handler);
|
|
this.signals.disconnect(name, (proxyHandler !== undefined) ? proxyHandler : handler);
|
|
}
|
|
getProxy(name, userHandler) {
|
|
return null;
|
|
}
|
|
}
|
|
exports.SignalAdapter = SignalAdapter;
|