1
0
Fork 0
mirror of synced 2024-07-04 14:01:27 +12:00
budibase/packages/server/src/events/index.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

const EventEmitter = require("events").EventEmitter
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 mustache used in automations.
*/
class BudibaseEmitter extends EventEmitter {
emitRow(eventName, appId, row, table = null) {
let event = {
row,
appId,
tableId: row.tableId,
}
if (table) {
event.table = table
}
event.id = row._id
if (row._rev) {
event.revision = row._rev
}
this.emit(eventName, event)
}
emitTable(eventName, appId, table = null) {
const tableId = table._id
let event = {
table: {
...table,
tableId: tableId,
},
appId,
tableId: tableId,
}
event.id = tableId
if (table._rev) {
event.revision = table._rev
}
this.emit(eventName, event)
}
}
const emitter = new BudibaseEmitter()
2020-06-01 04:12:52 +12:00
module.exports = emitter