1
0
Fork 0
mirror of synced 2024-09-21 20:01:32 +12:00
budibase/packages/server/src/events/BudibaseEmitter.ts

30 lines
971 B
TypeScript
Raw Normal View History

import { EventEmitter } from "events"
import { rowEmission, tableEmission } from "./utils"
import { Table, Row } from "@budibase/types"
2020-05-25 09:54:08 +12:00
/**
* 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.
*/
2020-06-01 04:12:52 +12:00
/**
* 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: string, appId: string, row: Row, table?: Table) {
rowEmission({ emitter: this, eventName, appId, row, table })
}
emitTable(eventName: string, appId: string, table?: Table) {
tableEmission({ emitter: this, eventName, appId, table })
}
2022-11-27 04:10:41 +13:00
emitPort(portNumber?: number | string) {
this.emit("internal:port", portNumber)
}
}
export default BudibaseEmitter