@denz93/vendure-plugin-simple-auth
Version:
Allow customers login using email and verification code (One time login)
45 lines • 1.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isFile = exports.isDir = exports.copyDir = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function copyDir(src, dest, { overwrite = false } = {}) {
if (!isDir(dest))
throw new Error(`Dest "${dest}" is not a directory`);
if (!fs_1.default.existsSync(src))
throw new Error(`Src "${src}" not exist`);
if (isFile(src) && (overwrite || !fs_1.default.existsSync(path_1.default.join(dest, path_1.default.basename(src))))) {
fs_1.default.copyFileSync(src, path_1.default.join(dest, path_1.default.basename(src)));
return;
}
const stack = [path_1.default.basename(src)];
const srcParent = path_1.default.dirname(src);
while (stack.length > 0) {
const relativePath = stack.pop();
const absPathSrc = path_1.default.join(srcParent, relativePath);
const absPathDest = path_1.default.join(dest, relativePath);
if (isFile(absPathSrc)) {
if (isFile(absPathDest) && !overwrite)
continue;
fs_1.default.copyFileSync(absPathSrc, absPathDest);
continue;
}
// absPathSrc is dir
!isDir(absPathDest) && fs_1.default.mkdirSync(absPathDest);
const subDirs = fs_1.default.readdirSync(absPathSrc);
stack.push(...subDirs.map(sub => path_1.default.join(relativePath, sub)));
}
}
exports.copyDir = copyDir;
function isDir(dest) {
return fs_1.default.existsSync(dest) && fs_1.default.lstatSync(dest).isDirectory();
}
exports.isDir = isDir;
function isFile(src) {
return fs_1.default.existsSync(src) && fs_1.default.lstatSync(src).isFile();
}
exports.isFile = isFile;
//# sourceMappingURL=copy-dir.js.map