UNPKG

@fontoxml/fontoxml-development-tools

Version:

Development tools for Fonto.

84 lines (78 loc) 2.44 kB
import path from 'path'; import EditorRepository from './EditorRepository.js'; export default async function addModulesToApp(app) { // Default modules. await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'localization'), ); await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'operations'), ); await app.enableBuiltInModule(path.join(app.builtInModulesPath, 'schema')); // The editor repository information is normally initialized in the first pre-controller on the // cli command, but we need this information earlier. Stubb the logger to not output anything // yet, as that will be done later anyway. const editorRepository = new EditorRepository(); await editorRepository.init( { logger: { break: () => undefined, notice: () => undefined, InputError: app.logger.InputError, }, }, {} ); // Conditional modules based on product license (without actually validating the license). await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'connectors'), ); await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'content-quality'), ); await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'document-history'), ); if ( editorRepository && editorRepository.sdkVersion && editorRepository.sdkVersion.isPre7_7_0 ) { await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'editor-pre-7-7-0'), ); } else { await app.enableBuiltInModule(path.join(app.builtInModulesPath, 'editor')); } await app.enableBuiltInModule(path.join(app.builtInModulesPath, 'output')); await app.enableBuiltInModule(path.join(app.builtInModulesPath, 'review')); await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'schema-compiler'), ); await app.enableBuiltInModule( path.join(app.builtInModulesPath, 'spell-checker'), ); // Load additional modules from config.json. if ( editorRepository && editorRepository.config && editorRepository.config.developmentToolsModules && editorRepository.path ) { await Promise.all( editorRepository.config.developmentToolsModules.map( (developmentToolsModule) => { const developmentToolsModulePath = path.isAbsolute( developmentToolsModule ) ? developmentToolsModule : path.join( editorRepository.path, developmentToolsModule ); return app.enableModule(developmentToolsModulePath); } ) ); } }