UNPKG

@lcap/builder

Version:
42 lines (41 loc) 1.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.copy = copy; exports.getPath = getPath; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); function copy(sourceFolder, destinationFolder, replaceList) { if (!fs_extra_1.default.existsSync(sourceFolder)) { return; } if (!fs_extra_1.default.existsSync(destinationFolder)) { fs_extra_1.default.mkdirSync(destinationFolder, { recursive: true }); } fs_extra_1.default.readdirSync(sourceFolder).forEach((file) => { const sourceFilePath = path_1.default.resolve(sourceFolder, file); const destinationFilePath = path_1.default.resolve(destinationFolder, file); if (fs_extra_1.default.lstatSync(sourceFilePath).isDirectory()) { copy(sourceFilePath, destinationFilePath, replaceList); } else { let content = fs_extra_1.default.readFileSync(sourceFilePath, 'utf-8').toString(); replaceList.forEach(({ reg, text }) => { content = content.replace(reg, text); }); fs_extra_1.default.writeFileSync(destinationFilePath, content, 'utf-8'); } }); } const suffixes = ['.ts', '.tsx', '.js', '.jsx']; function getPath(filePath) { const ext = suffixes.find((s) => { return fs_extra_1.default.existsSync(filePath + s); }); if (!ext) { return null; } return filePath + ext; }