MCPcopy
hub / github.com/tldraw/tldraw / main

Function main

packages/create-tldraw/src/main.ts:26–64  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

24const DEBUG = !!process.env.DEBUG
25
26async 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
66main().catch((err) => {
67 if (DEBUG) console.error(err)

Callers 1

main.tsFile · 0.70

Calls 14

nicelogFunction · 0.90
formatTargetDirFunction · 0.90
getPackageManagerFunction · 0.90
getInstallCommandFunction · 0.90
getRunCommandFunction · 0.90
getHelpFunction · 0.85
templatePickerFunction · 0.85
namePickerFunction · 0.85
findAvailableDirFunction · 0.85
downloadTemplateFunction · 0.85
renameTemplateFunction · 0.85
parseArgsFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…