-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.ts
More file actions
59 lines (46 loc) · 1.58 KB
/
init.ts
File metadata and controls
59 lines (46 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
export { internalPluginLoad } from './core/loadPlugins'
import { readConfig } from './core/readConfig'
import { loadPlugins } from './core/loadPlugins'
import { projectConfig, updateConfig, setPluginDefinitions, getPluginDefinitions } from './config'
import { logger } from '../utilities/logger'
import { resolvePath, requireValue } from '../utilities/cli'
import { createContext, ExecuteStep, executor } from '../context'
import * as annotations from '../../annotations'
export const pluginInitParam: any = {
logger,
resolvePath, requireValue,
createContext, ExecuteStep, executor,
annotations,
projectConfig,
getPluginDefinitions
}
export const init = (commander) => {
const configJson = readConfig()
updateConfig(configJson)
const plugins = loadPlugins(projectConfig)
// init plugins
for (const pluginInfo of plugins) {
try {
const pluginConfig = pluginInfo.init(pluginInitParam)
setPluginDefinitions({
pluginInfo,
config: pluginConfig || {}
})
} catch (e) {
logger.error(`Plugin '${pluginInfo.path}' not loaded correctly`, e)
}
}
// init commands
const pluginDefinitions = getPluginDefinitions()
for (const plugin of pluginDefinitions) {
try {
if (plugin.config.commands) {
plugin.config.commands({
commander
})
}
} catch (e) {
logger.error(`Plugin '${plugin.pluginInfo.path}' commands not loaded correctly`, e)
}
}
}