48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
/*
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
| Ace entry point
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
|
 | 
						|
| The "console.ts" file is the entrypoint for booting the AdonisJS
 | 
						|
| command-line framework and executing commands.
 | 
						|
|
 | 
						|
| Commands do not boot the application, unless the currently running command
 | 
						|
| has "options.startApp" flag set to true.
 | 
						|
|
 | 
						|
*/
 | 
						|
 | 
						|
import 'reflect-metadata'
 | 
						|
import { Ignitor, prettyPrintError } from '@adonisjs/core'
 | 
						|
 | 
						|
/**
 | 
						|
 * URL to the application root. AdonisJS need it to resolve
 | 
						|
 * paths to file and directories for scaffolding commands
 | 
						|
 */
 | 
						|
const APP_ROOT = new URL('../', import.meta.url)
 | 
						|
 | 
						|
/**
 | 
						|
 * The importer is used to import files in context of the
 | 
						|
 * application.
 | 
						|
 */
 | 
						|
const IMPORTER = (filePath: string) => {
 | 
						|
  if (filePath.startsWith('./') || filePath.startsWith('../')) {
 | 
						|
    return import(new URL(filePath, APP_ROOT).href)
 | 
						|
  }
 | 
						|
  return import(filePath)
 | 
						|
}
 | 
						|
 | 
						|
new Ignitor(APP_ROOT, { importer: IMPORTER })
 | 
						|
  .tap((app) => {
 | 
						|
    app.booting(async () => {
 | 
						|
      await import('#start/env')
 | 
						|
    })
 | 
						|
    app.listen('SIGTERM', () => app.terminate())
 | 
						|
    app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate())
 | 
						|
  })
 | 
						|
  .ace()
 | 
						|
  .handle(process.argv.splice(2))
 | 
						|
  .catch((error) => {
 | 
						|
    process.exitCode = 1
 | 
						|
    prettyPrintError(error)
 | 
						|
  })
 |