import {globalRegistry, env} from '@extollo/lib'
import {app} from './bootstrap'

global.Error.stackTraceLimit = Infinity

globalRegistry.run(async () => {
    /*
     * The Application
     * -----------------------------------------------------
     * The application instance is a global inversion of control container that
     * ties your entire application together. The app container manages services
     * and lifecycle.
     */

    const appInstance = app()

    const limitOverride = env('STACK_TRACE_LIMIT')
    if ( limitOverride && !isNaN(limitOverride) ) {
        Error.stackTraceLimit = limitOverride
    }

    Error.stackTraceLimit = 50

    await appInstance.run()

    setTimeout(() => {
        process.exit(0)
    }, 3000)
})
