@lcap/builder
Version:
lcap builder utils
42 lines (41 loc) • 1.63 kB
JavaScript
;
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;
}