From b62cf5696f58b5873c40bbb977b649a0cd716234 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Tue, 12 Jul 2022 17:26:04 +0800 Subject: [PATCH] feat: don't empty directories with only `.git` folder --- index.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/index.ts b/index.ts index a8882856..5c1ffc40 100755 --- a/index.ts +++ b/index.ts @@ -27,8 +27,20 @@ function toValidPackageName(projectName) { .replace(/[^a-z0-9-~]+/g, '-') } -function canSafelyOverwrite(dir) { - return !fs.existsSync(dir) || fs.readdirSync(dir).length === 0 +function canSkipEmptying(dir: string) { + if (!fs.existsSync(dir)) { + return true + } + + const files = fs.readdirSync(dir) + if (files.length === 0) { + return true + } + if (files.length === 1 && files[0] === '.git') { + return true + } + + return false } function emptyDir(dir) { @@ -125,7 +137,7 @@ async function init() { }, { name: 'shouldOverwrite', - type: () => (canSafelyOverwrite(targetDir) || forceOverwrite ? null : 'confirm'), + type: () => (canSkipEmptying(targetDir) || forceOverwrite ? null : 'confirm'), message: () => { const dirForPrompt = targetDir === '.' ? 'Current directory' : `Target directory "${targetDir}"` -- 2.39.5