UNPKG

@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

30 lines (27 loc) 1.07 kB
import { retain, release } from '@remote-ui/core'; function createEventHandlers(createListener) { var unsubscribers = new Map(); return { addEventListener: function (event, listener) { var _a; var unsubscribe = createListener(event, listener); 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 () { 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); } }, }; } export { createEventHandlers };