@@ -37,21 +37,32 @@ async function getExampleDir() {
37
37
let dirNames = await readdir ( routifyExamplesDir ) ;
38
38
const projects = await Promise . all (
39
39
dirNames
40
- . map ( ( name ) => join ( routifyExamplesDir , name ) )
41
- . filter ( ( dir ) => existsSync ( join ( dir , 'manifest.js' ) ) )
42
- . map ( ( dir ) =>
43
- import ( pathToFileURL ( join ( dir , 'manifest.js' ) ) . pathname ) . then (
44
- ( m ) => ( { dir, manifest : m . default } ) ,
45
- ) ,
46
- ) ,
40
+ . map ( ( name ) => ( { name, dir : join ( routifyExamplesDir , name ) } ) )
41
+ . filter ( ( { dir } ) => existsSync ( join ( dir , 'manifest.js' ) ) )
42
+ . map ( async ( { dir, name } ) => {
43
+ try {
44
+ return await import (
45
+ pathToFileURL ( join ( dir , 'manifest.js' ) ) . pathname
46
+ ) . then ( ( m ) => ( { dir, name, manifest : m . default } ) ) ;
47
+ } catch ( err ) {
48
+ return {
49
+ dir,
50
+ name,
51
+ manifest : {
52
+ name,
53
+ description : 'Could not read template info' ,
54
+ } ,
55
+ } ;
56
+ }
57
+ } ) ,
47
58
) ;
48
59
49
60
const { project } = await prompts (
50
61
{
51
62
message : 'Please select a starter template' ,
52
63
name : 'project' ,
53
64
type : 'select' ,
54
- choices : projects . map ( ( value ) => ( {
65
+ choices : projects . filter ( Boolean ) . map ( ( value ) => ( {
55
66
title : value . manifest . name ,
56
67
description : value . manifest . description ,
57
68
value,
0 commit comments