UNPKG

2.23 kBJavaScriptView Raw
1import path from 'path';
2import { fileURLToPath } from 'url';
3
4import { isPre770Editor } from './editorVersions.js';
5
6const __filename = fileURLToPath(import.meta.url);
7const __dirname = path.dirname(__filename);
8
9export default async function addModulesToApp(app) {
10 // Default modules.
11 await app.enableBuiltInModule(
12 path.join(__dirname, 'modules', 'localization')
13 );
14 await app.enableBuiltInModule(
15 path.join(__dirname, 'modules', 'operations')
16 );
17 await app.enableBuiltInModule(path.join(__dirname, 'modules', 'schema'));
18
19 // Conditional modules based on product license (without actually validating the license).
20 await app.enableBuiltInModule(
21 path.join(__dirname, 'modules', 'connectors')
22 );
23 await app.enableBuiltInModule(
24 path.join(__dirname, 'modules', 'content-quality')
25 );
26 await app.enableBuiltInModule(
27 path.join(__dirname, 'modules', 'document-history')
28 );
29 if (
30 isPre770Editor(
31 app &&
32 app.request &&
33 app.request.fdt &&
34 app.request.fdt.editorRepository &&
35 app.request.fdt.editorRepository.sdkVersion
36 )
37 ) {
38 await app.enableBuiltInModule(
39 path.join(__dirname, 'modules', 'editor-pre-7-7-0')
40 );
41 } else {
42 await app.enableBuiltInModule(
43 path.join(__dirname, 'modules', 'editor')
44 );
45 }
46 await app.enableBuiltInModule(path.join(__dirname, 'modules', 'review'));
47 await app.enableBuiltInModule(
48 path.join(__dirname, 'modules', 'schema-compiler')
49 );
50 await app.enableBuiltInModule(
51 path.join(__dirname, 'modules', 'spell-checker')
52 );
53
54 // Load additional modules from config.json.
55 if (
56 app.request &&
57 app.request.fdt &&
58 app.request.fdt.editorRepository &&
59 app.request.fdt.editorRepository.config &&
60 app.request.fdt.editorRepository.config.developmentToolsModules &&
61 app.request.fdt.editorRepository.path
62 ) {
63 await Promise.all(
64 app.request.fdt.editorRepository.config.developmentToolsModules.map(
65 (developmentToolsModule) => {
66 const developmentToolsModulePath = path.isAbsolute(
67 developmentToolsModule
68 )
69 ? developmentToolsModule
70 : path.join(
71 app.request.fdt.editorRepository.path,
72 developmentToolsModule
73 );
74 return app.enableModule(developmentToolsModulePath);
75 }
76 )
77 );
78 }
79}