1 | import { RunnerResult, RunnerConfig } from './types'
|
2 | import resolve from './config-resolver'
|
3 |
|
4 | import engine from './engine'
|
5 |
|
6 | import { printHelp, availableActions } from './help'
|
7 |
|
8 | const runner = async (
|
9 | argv: string[],
|
10 | config: RunnerConfig,
|
11 | ): Promise<RunnerResult> => {
|
12 | const resolvedConfig = await resolve(config)
|
13 | const { templates, logger } = resolvedConfig
|
14 | try {
|
15 | const actions = await engine(argv, resolvedConfig)
|
16 | return { success: true, actions, time: 0 }
|
17 | } catch (err) {
|
18 | logger.log(err.toString())
|
19 | if (resolvedConfig.debug) {
|
20 | logger.log('details -----------')
|
21 | logger.log(err.stack)
|
22 | logger.log('-------------------')
|
23 | }
|
24 | printHelp(templates, logger)
|
25 | return { success: false, actions: [], time: 0 }
|
26 |
|
27 | }
|
28 | }
|
29 |
|
30 | export { runner, engine, resolve, printHelp, availableActions }
|