import DeferredRunner from "../deferredRunner"

let deferredRunner: DeferredRunner
const moduleName = "EmergencyMgmt"

const wrappedMethodNames = [
    'logIngestEvent',
    'logCatalogEvent'
]

// expose each method as a wrapper that just calls the deferredRunner
const wrappedMethods = wrappedMethodNames.reduce(
    (obj, current) => {
        obj[current] = (...args) => deferredRunner.execute(moduleName, current, args)
        return obj
    },
    {})

const init = (injectedDeferredRunner) => {
    deferredRunner = injectedDeferredRunner
}

export default {
    init,
    ...wrappedMethods
}
