( coreCompiler: CoreCompiler, config: d.Config, task: d.TaskCommand, sys: d.CompilerSystem, )
| 126 | * @returns a void promise |
| 127 | */ |
| 128 | export const runTask = async ( |
| 129 | coreCompiler: CoreCompiler, |
| 130 | config: d.Config, |
| 131 | task: d.TaskCommand, |
| 132 | sys: d.CompilerSystem, |
| 133 | ): Promise<void> => { |
| 134 | const flags = createConfigFlags(config.flags ?? { task }); |
| 135 | config.flags = flags; |
| 136 | |
| 137 | if (!config.sys) { |
| 138 | config.sys = sys; |
| 139 | } |
| 140 | const strictConfig: ValidatedConfig = coreCompiler.validateConfig(config, {}).config; |
| 141 | |
| 142 | switch (task) { |
| 143 | case 'build': |
| 144 | await taskBuild(coreCompiler, strictConfig); |
| 145 | break; |
| 146 | |
| 147 | case 'docs': |
| 148 | await taskDocs(coreCompiler, strictConfig); |
| 149 | break; |
| 150 | |
| 151 | case 'generate': |
| 152 | case 'g': |
| 153 | await taskGenerate(strictConfig); |
| 154 | break; |
| 155 | |
| 156 | case 'help': |
| 157 | await taskHelp(strictConfig.flags, strictConfig.logger, sys); |
| 158 | break; |
| 159 | |
| 160 | case 'prerender': |
| 161 | await taskPrerender(coreCompiler, strictConfig); |
| 162 | break; |
| 163 | |
| 164 | case 'serve': |
| 165 | await taskServe(strictConfig); |
| 166 | break; |
| 167 | |
| 168 | case 'telemetry': |
| 169 | await taskTelemetry(strictConfig.flags, sys, strictConfig.logger); |
| 170 | break; |
| 171 | |
| 172 | case 'test': |
| 173 | await taskTest(strictConfig); |
| 174 | break; |
| 175 | |
| 176 | case 'version': |
| 177 | console.log(coreCompiler.version); |
| 178 | break; |
| 179 | |
| 180 | default: |
| 181 | strictConfig.logger.error( |
| 182 | `${strictConfig.logger.emoji('❌ ')}Invalid stencil command, please see the options below:`, |
| 183 | ); |
| 184 | await taskHelp(strictConfig.flags, strictConfig.logger, sys); |
| 185 | return config.sys.exit(1); |
no test coverage detected