From 9c19e7f9838f9117769387992da4bbbf7c846578 Mon Sep 17 00:00:00 2001 From: gonzaloriestra <14979109+gonzaloriestra@users.noreply.github.com> Date: Fri, 1 May 2026 00:18:49 +0000 Subject: [PATCH] [Refactor] Use relativePath utility in copyDirectoryContents Refactored `copyDirectoryContents` in `packages/cli-kit/src/public/node/fs.ts` to use the `relativePath` utility instead of manual string manipulation for more robust and idiomatic path handling. Also simplified the promise collection by using `.map()`. Co-authored-by: Cursor --- packages/cli-kit/src/public/node/fs.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/cli-kit/src/public/node/fs.ts b/packages/cli-kit/src/public/node/fs.ts index 698edd4499..08f20ff3db 100644 --- a/packages/cli-kit/src/public/node/fs.ts +++ b/packages/cli-kit/src/public/node/fs.ts @@ -1,5 +1,5 @@ import {outputContent, outputToken, outputDebug} from './output.js' -import {joinPath, normalizePath, resolvePath} from './path.js' +import {joinPath, normalizePath, resolvePath, relativePath} from './path.js' import {OverloadParameters} from '../../private/common/ts/overloaded-parameters.js' import {getRandomName, RandomNameFamily} from '../common/string.js' import {systemTempDir} from '../../private/node/temp-dir.js' @@ -730,14 +730,11 @@ export async function copyDirectoryContents(srcDir: string, destDir: string): Pr // Get all files and directories in the source directory const items = await glob(joinPath(srcDir, '**/*')) - const filesToCopy = [] - - for (const item of items) { - const relativePath = item.replace(srcDir, '').replace(/^[/\\]/, '') - const destPath = joinPath(destDir, relativePath) - - filesToCopy.push(copyFile(item, destPath)) - } + const filesToCopy = items.map((item) => { + const relPath = relativePath(srcDir, item) + const destPath = joinPath(destDir, relPath) + return copyFile(item, destPath) + }) await Promise.all(filesToCopy) }