Files
payloadcms/packages/create-payload-app/src/utils/copy-recursive-sync.ts
Elliot DeNolf def595e645 feat(templates): add with-vercel-website (#9144)
Add new `with-vercel-website` that uses the website template as a base.
2024-11-12 13:12:37 -05:00

25 lines
733 B
TypeScript

import fs from 'fs'
import path from 'path'
/**
* Recursively copy files from src to dest
*
* @internal
*/
export function copyRecursiveSync(src: string, dest: string, ignoreRegex?: string[]): void {
const exists = fs.existsSync(src)
const stats = exists && fs.statSync(src)
const isDirectory = exists && stats !== false && stats.isDirectory()
if (isDirectory) {
fs.mkdirSync(dest, { recursive: true })
fs.readdirSync(src).forEach((childItemName) => {
if (ignoreRegex && ignoreRegex.some((regex) => new RegExp(regex).test(childItemName))) {
return
}
copyRecursiveSync(path.join(src, childItemName), path.join(dest, childItemName))
})
} else {
fs.copyFileSync(src, dest)
}
}