UNPKG

@knapsack/app

Version:

Build Design Systems on top of knapsack, by Basalt

50 lines (37 loc) 1.56 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.emitPatternsDataReady = emitPatternsDataReady; Object.defineProperty(exports, "EVENTS", { enumerable: true, get: function () { return _constants.EVENTS; } }); exports.knapsackEvents = void 0; var _events = require("events"); var _util = _interopRequireDefault(require("util")); var _debounce = _interopRequireDefault(require("debounce")); var log = _interopRequireWildcard(require("../cli/log")); var _constants = require("../lib/constants"); class KnapsackEventEmitter extends _events.EventEmitter {} const knapsackEvents = new KnapsackEventEmitter(); exports.knapsackEvents = knapsackEvents; const debouncedEmit = (0, _debounce.default)((eventName, eventData) => { knapsackEvents.emit(eventName, eventData); }, 100); // @todo use this format for event types: `CustomEvent<KsRendererClientManifest>` function emitPatternsDataReady(patterns) { debouncedEmit(_constants.EVENTS.PATTERNS_DATA_READY, patterns); } Object.keys(_constants.EVENTS).forEach(event => { const eventName = _constants.EVENTS[event]; // each event should emit either nothing or a single object, no more knapsackEvents.on(eventName, info => { log.verbose(`event fired: ${eventName}`, null, 'events'); log.silly('', _util.default.inspect(info, { depth: 3 }), 'events'); }); });