@shopify/app-bridge-host
Version:
App Bridge Host contains components and middleware to be consumed by the app's host, as well as the host itself. The middleware and `Frame` component are responsible for facilitating communication between the client and host, and used to act on actions se
32 lines (28 loc) • 1.1 kB
JavaScript
;
var core = require('@remote-ui/core');
function createEventHandlers(createListener) {
var unsubscribers = new Map();
return {
addEventListener: function (event, listener) {
var _a;
var unsubscribe = createListener(event, listener);
core.retain(listener);
if (!unsubscribers.has(event)) {
unsubscribers.set(event, new Map());
}
(_a = unsubscribers.get(event)) === null || _a === void 0 ? void 0 : _a.set(listener, function () {
core.release(listener);
unsubscribe();
});
},
removeEventListener: function (event, listener) {
var _a, _b;
var unsubscribe = (_a = unsubscribers.get(event)) === null || _a === void 0 ? void 0 : _a.get(listener);
if (unsubscribe) {
unsubscribe();
(_b = unsubscribers.get(event)) === null || _b === void 0 ? void 0 : _b.delete(listener);
}
},
};
}
exports.createEventHandlers = createEventHandlers;