arredemo
Version:
Instantly build a static site for your package
30 lines (25 loc) • 721 B
JavaScript
import fs from "node:fs"
import path from "node:path"
const copyFolderSync = (source, dest, customCopyCallback) => {
if (!fs.existsSync(dest)) {
fs.mkdirSync(dest)
}
fs.readdirSync(source).forEach((element) => {
const sourceEl = path.join(source, element)
const destEl = path.join(dest, element)
if (fs.lstatSync(sourceEl).isFile()) {
const custCb = customCopyCallback(sourceEl, destEl)
if (custCb) {
custCb(sourceEl, destEl)
} else {
fs.copyFileSync(sourceEl, destEl)
}
} else {
if (!fs.existsSync(destEl)) {
fs.mkdirSync(destEl)
}
copyFolderSync(sourceEl, destEl, customCopyCallback)
}
})
}
export { copyFolderSync }