@boostercloud/cli
Version:
CLI of the Booster Framework, the next level of abstraction for cloud-native applications
40 lines (39 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTemplateFileMap = exports.createStubsFolder = exports.checkResourceStubFileExists = exports.checkStubsFolderExists = exports.resourceTemplateFilePath = exports.resourceStubFilePath = exports.resourceTemplatesPath = void 0;
exports.publishStubFiles = publishStubFiles;
const fs_extra_1 = require("fs-extra");
const path_1 = require("path");
const errors_1 = require("../common/errors");
exports.resourceTemplatesPath = (0, path_1.join)(__dirname, '..', 'templates');
const resourceStubFilePath = (fileName) => (0, path_1.join)(process.cwd(), 'stubs', fileName);
exports.resourceStubFilePath = resourceStubFilePath;
const resourceTemplateFilePath = (fileName) => (0, path_1.join)(exports.resourceTemplatesPath, fileName);
exports.resourceTemplateFilePath = resourceTemplateFilePath;
const checkStubsFolderExists = () => (0, fs_extra_1.existsSync)((0, path_1.join)(process.cwd(), 'stubs'));
exports.checkStubsFolderExists = checkStubsFolderExists;
const checkResourceStubFileExists = (filePath) => (0, fs_extra_1.existsSync)(filePath);
exports.checkResourceStubFileExists = checkResourceStubFileExists;
const createStubsFolder = () => (0, fs_extra_1.mkdirSync)((0, path_1.join)(process.cwd(), 'stubs'));
exports.createStubsFolder = createStubsFolder;
const createTemplateFileMap = (files) => files
.filter((file) => file.isFile() && file.name.includes('.stub'))
.reduce((files, file) => {
const resourceTemplatePath = (0, path_1.join)(exports.resourceTemplatesPath, file.name);
files[resourceTemplatePath] = (0, path_1.join)(process.cwd(), 'stubs', file.name);
return files;
}, {});
exports.createTemplateFileMap = createTemplateFileMap;
async function publishStubFiles() {
const files = (0, fs_extra_1.readdirSync)(exports.resourceTemplatesPath, { withFileTypes: true });
const templateFilesMap = (0, exports.createTemplateFileMap)(files);
try {
for (const [from, to] of Object.entries(templateFilesMap)) {
copyStubFile(from, to);
}
}
catch (e) {
throw (0, errors_1.wrapExecError)(e, 'Error when publishing stubs');
}
}
const copyStubFile = (from, to) => (0, fs_extra_1.writeFileSync)(to, (0, fs_extra_1.readFileSync)(from));