const EventEmitter = require("events").EventEmitter const { rowEmission, tableEmission } = require("./utils") /** * keeping event emitter in one central location as it might be used for things other than * automations (what it was for originally) - having a central emitter will be useful in the * future. */ /** * Extending the standard emitter to some syntactic sugar and standardisation to the emitted event. * This is specifically quite important for template strings used in automations. */ class BudibaseEmitter extends EventEmitter { emitRow(eventName, appId, row, table = null) { rowEmission({ emitter: this, eventName, appId, row, table }) } emitTable(eventName, appId, table = null) { tableEmission({ emitter: this, eventName, appId, table }) } emitPort(portNumber) { this.emit("internal:port", portNumber) } } const emitter = new BudibaseEmitter() module.exports = emitter