@travetto/app
Version:
Application registration/management and run support.
42 lines (34 loc) • 1.17 kB
text/typescript
import { RootRegistry } from '@travetto/registry';
import { RootIndex } from '@travetto/manifest';
import { Env, ConsoleManager } from '@travetto/base';
import { ApplicationRegistry } from '../../src/registry';
import type { ApplicationConfig } from '../../src/types';
import { AppListLoader } from './list';
/**
* Supporting app execution
*/
export class AppRunUtil {
/**
* Execute running of an application, by name. Setting important environment variables before
* loading framework and compiling
*/
static async run(app: ApplicationConfig | string, ...sub: string[]): Promise<void> {
if (typeof app === 'string') {
app = (await new AppListLoader().findByName(app))!;
}
if (app.module !== RootIndex.mainModule.name) { // Mono-repo support
RootIndex.reinitForModule(app.module); // Reinit with specified module
}
if (!Env.isTrue('DEBUG')) {
ConsoleManager.setDebug(false);
}
// Init
await RootRegistry.init();
if (!Env.isTrue('DEBUG')) {
ConsoleManager.setDebugFromEnv();
}
// Run
return await ApplicationRegistry.run(app.name, sub);
}
}
export const main = AppRunUtil.run;