()
| 24 | const DEBUG = !!process.env.DEBUG |
| 25 | |
| 26 | async function main() { |
| 27 | const args = parseArgs(process.argv.slice(2), { |
| 28 | alias: { |
| 29 | h: 'help', |
| 30 | t: 'template', |
| 31 | }, |
| 32 | boolean: ['help', 'no-telemetry'], |
| 33 | string: ['template'], |
| 34 | }) |
| 35 | |
| 36 | if (args.help) { |
| 37 | nicelog(getHelp()) |
| 38 | process.exit(0) |
| 39 | } |
| 40 | |
| 41 | const maybeTargetDir = args._[0] ? formatTargetDir(resolve(String(args._[0]))) : undefined |
| 42 | |
| 43 | const template = await templatePicker(args.template, args['no-telemetry']) |
| 44 | const name = await namePicker(maybeTargetDir) |
| 45 | |
| 46 | const requestedDir = maybeTargetDir ?? resolve(process.cwd(), name) |
| 47 | const targetDir = findAvailableDir(requestedDir) |
| 48 | mkdirSync(targetDir, { recursive: true }) |
| 49 | |
| 50 | await downloadTemplate(template, targetDir) |
| 51 | await renameTemplate(name, targetDir) |
| 52 | |
| 53 | const manager = getPackageManager() |
| 54 | const doneMessage = ['Done! Now run:', ''] |
| 55 | if (targetDir !== process.cwd()) { |
| 56 | doneMessage.push(` cd ${relative(process.cwd(), targetDir)}`) |
| 57 | } |
| 58 | doneMessage.push(` ${getInstallCommand(manager)}`) |
| 59 | doneMessage.push(` ${getRunCommand(manager, 'dev')}`) |
| 60 | doneMessage.push('') |
| 61 | doneMessage.push(' Happy building! Visit https://tldraw.dev/docs to learn more.') |
| 62 | |
| 63 | outro(doneMessage.join('\n')) |
| 64 | } |
| 65 | |
| 66 | main().catch((err) => { |
| 67 | if (DEBUG) console.error(err) |
no test coverage detected
searching dependent graphs…