Skip to content

Commit 220d04f

Browse files
committed
feat: prevent overwriting non-empty directories
1 parent 453a72f commit 220d04f

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

packages/cta-cli/src/options.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { intro } from '@clack/prompts'
1+
import fs from 'node:fs'
2+
import { cancel, intro } from '@clack/prompts'
23

34
import {
45
finalizeAddOns,
@@ -42,6 +43,15 @@ export async function promptForCreateOptions(
4243
options.framework = getFrameworkById(cliOptions.framework || 'react-cra')!
4344

4445
options.projectName = cliOptions.projectName || (await getProjectName())
46+
if (
47+
fs.existsSync(options.projectName) &&
48+
fs.readdirSync(options.projectName).length > 0
49+
) {
50+
cancel(
51+
`The directory ${options.projectName} is not empty. Please choose a different project name.`,
52+
)
53+
process.exit(1)
54+
}
4555

4656
// Router type selection
4757
if (forcedMode) {

packages/cta-cli/src/ui-prompts.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
import type { AddOn, PackageManager } from '@tanstack/cta-engine'
1717

1818
import type { Framework } from '@tanstack/cta-engine/dist/types/types.js'
19-
import { InitialData } from '../../cta-ui/src/types'
2019

2120
export async function getProjectName(): Promise<string> {
2221
const value = await text({

0 commit comments

Comments
 (0)