UNPKG

rucken

Version:

Console tools and scripts for nx and not only that I (EndyKaufman) use to automate the workflow and speed up the development process

108 lines (107 loc) 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VersionUpdaterService = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const fs_1 = require("fs"); const log4js_1 = require("log4js"); const utils_service_1 = require("../utils/utils.service"); let VersionUpdaterService = class VersionUpdaterService { constructor(utilsService) { this.utilsService = utilsService; } setLogger(command) { this.logger = (0, log4js_1.getLogger)(command); this.logger.level = utils_service_1.UtilsService.logLevel(); } versionUpdaterHandler({ updatePackageVersion, updateDependenciesVersion, }) { this.logger.info('Start update versions...'); this.logger.debug(`Config: ${JSON.stringify({ updatePackageVersion, })}`); const rootConfigPath = this.utilsService.resolveFilePath(utils_service_1.PACKAGE_JSON); const projects = this.utilsService.getWorkspaceProjects(); Object.keys(projects) .filter((key) => !key.includes('-e2e')) .forEach((projectName) => { this.logger.debug(`Process project "${projectName}" in ${projects[projectName].root}`); this.updateFolderPackageFromRootPackage({ rootConfigPath, appConfigPath: `${projects[projectName].root}/package.json`, updatePackageVersion, updateDependenciesVersion, }); }); this.logger.info('End of update versions...'); } updateFolderPackageFromRootPackage({ rootConfigPath, appConfigPath, updatePackageVersion, updateDependenciesVersion, }) { this.logger.debug(`Start for ${JSON.stringify({ rootConfigPath: rootConfigPath, appConfigPath: appConfigPath, })}`); if (appConfigPath === rootConfigPath) { throw new Error(`Source and destination is equals: ${appConfigPath}==${rootConfigPath}`); } let folderConfig; let rootConfig; let content; try { content = (0, fs_1.readFileSync)(rootConfigPath).toString(); rootConfig = JSON.parse(content); } catch (error) { throw new Error(`Wrong body of file ${rootConfigPath}`); } try { content = (0, fs_1.readFileSync)(appConfigPath).toString(); folderConfig = JSON.parse(content); let save = false; if (updatePackageVersion) { folderConfig['version'] = rootConfig['version']; save = true; } if (updateDependenciesVersion) { if (folderConfig['peerDependencies']) { const peerDependenciesKeys = Object.keys(folderConfig['peerDependencies']); peerDependenciesKeys.forEach((key) => { save = true; if (rootConfig['dependencies'][key]) { folderConfig['peerDependencies'][key] = rootConfig['dependencies'][key]; } }); } if (folderConfig['dependencies']) { const dependenciesKeys = Object.keys(folderConfig['dependencies']); dependenciesKeys.forEach((key) => { save = true; if (rootConfig['dependencies'][key]) { folderConfig['dependencies'][key] = rootConfig['dependencies'][key]; } if (rootConfig['devDependencies'][key]) { folderConfig['dependencies'][key] = rootConfig['devDependencies'][key]; } }); } } if (save) { (0, fs_1.writeFileSync)(appConfigPath, JSON.stringify(folderConfig, null, 4)); } } catch (error) { this.logger.info('Error', `Wrong body of file ${appConfigPath}`); } this.logger.info(`End of for ${JSON.stringify({ rootConfigPath: rootConfigPath, appConfigPath: appConfigPath, })}`); } }; VersionUpdaterService.title = 'version-updater'; VersionUpdaterService = tslib_1.__decorate([ (0, common_1.Injectable)(), tslib_1.__metadata("design:paramtypes", [utils_service_1.UtilsService]) ], VersionUpdaterService); exports.VersionUpdaterService = VersionUpdaterService;