"use strict";
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;
