Skip to content

Commit 966a089

Browse files
authored
fix(templating): catch errors in command, not before (#130)
1 parent f8e49b5 commit 966a089

File tree

2 files changed

+19
-18
lines changed

2 files changed

+19
-18
lines changed

src/commands/new.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Merge } from 'type-fest';
55
import { Arguments, Argv } from 'yargs';
66
import checkProjectStructure from '../checks/project-structure';
77
import { downloadTemplate, fetchListOfTemplates } from '../templating/actions';
8-
import { setLogLevelByName } from '../utils/logger';
8+
import { setLogLevelByName, logger } from '../utils/logger';
99
import { baseCliOptions, BaseFlags, ExternalCliOptions } from './shared';
1010
import { CliInfo } from './types';
1111
import { getFullCommand } from './utils';
@@ -112,7 +112,11 @@ export async function handler(
112112

113113
const sanitizedNamespace = flags.namespace.replace(/\.js$/, '');
114114

115-
downloadTemplate(flags.template, sanitizedNamespace, targetDirectory);
115+
try {
116+
await downloadTemplate(flags.template, sanitizedNamespace, targetDirectory);
117+
} catch (error) {
118+
logger.error(error.message, error.name);
119+
}
116120
}
117121

118122
export const cliInfo: CliInfo = {

src/templating/actions.ts

+13-16
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,19 @@ export async function downloadTemplate(
99
namespace: string,
1010
targetDirectory: string
1111
): Promise<void> {
12-
try {
13-
const files = await getTemplateFiles(templateName);
14-
await writeFiles(files, targetDirectory, namespace, templateName);
15-
logger.info(
16-
chalk`{green SUCCESS} Downloaded new template into the "${namespace}" subdirectories.`
17-
);
18-
logger.info(
19-
`Check ${path.join(
20-
'readmes',
21-
namespace,
22-
`${templateName}.md`
23-
)} for template instructions.`
24-
);
25-
} catch (err) {
26-
logger.error(err.message, err.name);
27-
}
12+
const files = await getTemplateFiles(templateName);
13+
14+
await writeFiles(files, targetDirectory, namespace, templateName);
15+
logger.info(
16+
chalk`{green SUCCESS} Downloaded new template into the "${namespace}" subdirectories.`
17+
);
18+
logger.info(
19+
`Check ${path.join(
20+
'readmes',
21+
namespace,
22+
`${templateName}.md`
23+
)} for template instructions.`
24+
);
2825
}
2926

3027
export { fetchListOfTemplates } from './data';

0 commit comments

Comments
 (0)