import { eventsList } from "@budibase/core" import { filter, union, has, map } from "lodash/fp" const allEventsOfType = type => filter(e => e.endsWith(`:${type}`))(eventsList) const hasRecord = has("record") export const register = (app, logTimeElapsed, eventNamespaces = []) => { const onCompleteEvents = eventNamespaces.length === 0 ? allEventsOfType("onComplete") : map(e => `${e}:onComplete`)(eventNamespaces) const onErrorEvents = eventNamespaces.length === 0 ? allEventsOfType("onError") : map(e => `${e}:onError`)(eventNamespaces) for (let ev of union(onCompleteEvents)(onErrorEvents)) { app.subscribe(ev, (_, ctx) => { const info = hasRecord(ctx) ? ctx.record.type() : "" logTimeElapsed(ev, ctx.elapsed, info) }) } }