88import ConfigManager , { IConfigManager } from './config-manager' ;
99import ConfigManagerProxy from './config-manager/config-manager-proxy' ;
1010import ConfigWizard from './config-wizard' ;
11+ import depsManager from './dependencies-manager' ;
1112import PluginManager , { PluginManager as IPluginManager } from './plugin-manager' ;
1213import TaskManager from './task-manager' ;
13- import taskInitProject from './tasks/task-init-project ' ;
14+ import tasks from './tasks' ;
1415import Logger , { ILogger } from './util/logger' ;
1516
17+
18+ // Task Manager configuration
1619const taskManagerConfig = {
20+ // Task hooks
1721 hooks : [
1822 'init' ,
1923 'config' ,
@@ -25,16 +29,22 @@ const taskManagerConfig = {
2529 ] ,
2630} ;
2731
28- let internalPlugins = [
29- taskInitProject ,
30- ] ;
32+ // Internal plugins list
33+ let internalPlugins = [ ...tasks ] ;
3134
3235/* test:start */
3336// Stop internal plugin loading in TEST environment
3437internalPlugins = [ ] ;
3538/* test:end */
3639
3740
41+ // Custom messages
42+ const MESSAGES = {
43+ INIT_COMPLETE : 'Components initialized.' ,
44+ INIT_COMPONENTS : 'Initializing components\u2026' ,
45+ } ;
46+
47+
3848/**
3949 * Get list of plugins from init config and register them
4050 */
@@ -49,13 +59,21 @@ export async function loadConfigPlugins(configManager: IConfigManager, pluginMan
4959 */
5060async function Frontvue ( ) {
5161 const name = 'frontvue' ;
62+
63+ // Get logger constructor
5264 const logger = Logger . getInstance ( ) ;
65+ // Create core logger instance and output message
66+ const coreLogger = logger ( 'core' ) ;
67+ coreLogger . info ( MESSAGES . INIT_COMPONENTS ) ;
68+
69+ // Instatiate components
5370 const configManager = await ConfigManager ( name ) ;
5471 const configWizard = ConfigWizard ( configManager ) ;
5572 const taskManager = TaskManager ( taskManagerConfig ) ;
56- const pluginManager = PluginManager ( taskManager , configWizard ) ;
73+ const pluginManager = PluginManager ( taskManager , configWizard , depsManager ) ;
5774 const { run } = taskManager ;
5875
76+
5977 // Use internal plugin(s)
6078 await pluginManager . use ( ...internalPlugins ) ;
6179
@@ -67,10 +85,18 @@ async function Frontvue() {
6785 /* test:end */
6886 await loadExternalPlugins ( configManager , pluginManager ) ;
6987
88+
89+ // Output component instatiation complete message
90+ coreLogger . debug ( MESSAGES . INIT_COMPLETE ) ;
91+
92+
7093 // Return public API
7194 return Object . freeze ( {
95+ // Named logger constructor
7296 logger,
97+ // Name of the app
7398 name,
99+ // TaskManager's run tasks method
74100 run,
75101 } ) ;
76102}
0 commit comments