UNPKG

@riddance/host

Version:

28 lines 4.19 kB
import { combineConfig, getMetadata } from './meta.js'; import { addHandler } from './registry.js'; let eventHostRegistry; function setEventHost(host) { eventHostRegistry = host; } function eventHost(meta, cfg, topic, type, entry) { addHandler('event', { meta, config: combineConfig(meta?.config, cfg), topic, type, entry, }); } setEventHost(eventHost); export function registerEventHandler(topic, type, configOrHandler, fn) { if (typeof configOrHandler === 'function') { eventHostRegistry(getMetadata(), undefined, topic, type, configOrHandler); } else { if (!fn) { throw new Error('Please provide a handler function.'); } eventHostRegistry(getMetadata(), configOrHandler, topic, type, fn); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJldmVudC1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBeUMsTUFBTSxXQUFXLENBQUE7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQWtCMUMsSUFBSSxpQkFBNEIsQ0FBQTtBQUVoQyxTQUFTLFlBQVksQ0FBQyxJQUFlO0lBQ2pDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtBQUM1QixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQ2QsSUFBMEIsRUFDMUIsR0FBcUMsRUFDckMsS0FBYSxFQUNiLElBQVksRUFDWixLQUFvQjtJQUVwQixVQUFVLENBQUMsT0FBTyxFQUFFO1FBQ2hCLElBQUk7UUFDSixNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQ3hDLEtBQUs7UUFDTCxJQUFJO1FBQ0osS0FBSztLQUNSLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFdkIsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxLQUFhLEVBQ2IsSUFBWSxFQUNaLGVBQXFELEVBQ3JELEVBQWtCO0lBRWxCLElBQUksT0FBTyxlQUFlLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDeEMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDN0UsQ0FBQztTQUFNLENBQUM7UUFDSixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7UUFDekQsQ0FBQztRQUNELGlCQUFpQixDQUFDLFdBQVcsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBIYW5kbGVyIGFzIEV2ZW50RnVuY3Rpb24sIHR5cGUgSGFuZGxlckNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9ldmVudC5qcydcbmltcG9ydCB7IGNvbWJpbmVDb25maWcsIGdldE1ldGFkYXRhLCB0eXBlIEZ1bGxDb25maWd1cmF0aW9uLCB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi9tZXRhLmpzJ1xuaW1wb3J0IHsgYWRkSGFuZGxlciB9IGZyb20gJy4vcmVnaXN0cnkuanMnXG5cbmV4cG9ydCB0eXBlIEV2ZW50SGFuZGxlciA9IHtcbiAgICBtZXRhOiBNZXRhZGF0YSB8IHVuZGVmaW5lZFxuICAgIGNvbmZpZzogRnVsbENvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWRcbiAgICB0b3BpYzogc3RyaW5nXG4gICAgdHlwZTogc3RyaW5nXG4gICAgZW50cnk6IEV2ZW50RnVuY3Rpb25cbn1cblxudHlwZSBFdmVudEhvc3QgPSAoXG4gICAgbWV0YTogTWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gICAgY29uZmlnOiBIYW5kbGVyQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCxcbiAgICB0b3BpYzogc3RyaW5nLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBoYW5kbGVyOiBFdmVudEZ1bmN0aW9uLFxuKSA9PiB2b2lkXG5cbmxldCBldmVudEhvc3RSZWdpc3RyeTogRXZlbnRIb3N0XG5cbmZ1bmN0aW9uIHNldEV2ZW50SG9zdChob3N0OiBFdmVudEhvc3QpIHtcbiAgICBldmVudEhvc3RSZWdpc3RyeSA9IGhvc3Rcbn1cblxuZnVuY3Rpb24gZXZlbnRIb3N0KFxuICAgIG1ldGE6IE1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuICAgIGNmZzogSGFuZGxlckNvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG4gICAgdG9waWM6IHN0cmluZyxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgZW50cnk6IEV2ZW50RnVuY3Rpb24sXG4pIHtcbiAgICBhZGRIYW5kbGVyKCdldmVudCcsIHtcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uZmlnOiBjb21iaW5lQ29uZmlnKG1ldGE/LmNvbmZpZywgY2ZnKSxcbiAgICAgICAgdG9waWMsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGVudHJ5LFxuICAgIH0pXG59XG5cbnNldEV2ZW50SG9zdChldmVudEhvc3QpXG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckV2ZW50SGFuZGxlcihcbiAgICB0b3BpYzogc3RyaW5nLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBjb25maWdPckhhbmRsZXI6IEhhbmRsZXJDb25maWd1cmF0aW9uIHwgRXZlbnRGdW5jdGlvbixcbiAgICBmbj86IEV2ZW50RnVuY3Rpb24sXG4pOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZ09ySGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBldmVudEhvc3RSZWdpc3RyeShnZXRNZXRhZGF0YSgpLCB1bmRlZmluZWQsIHRvcGljLCB0eXBlLCBjb25maWdPckhhbmRsZXIpXG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFmbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZSBhIGhhbmRsZXIgZnVuY3Rpb24uJylcbiAgICAgICAgfVxuICAgICAgICBldmVudEhvc3RSZWdpc3RyeShnZXRNZXRhZGF0YSgpLCBjb25maWdPckhhbmRsZXIsIHRvcGljLCB0eXBlLCBmbilcbiAgICB9XG59XG4iXX0=