UNPKG

@boostercloud/cli

Version:

CLI of the Booster Framework, the next level of abstraction for cloud-native applications

40 lines (39 loc) 2.29 kB
"use strict"; 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));