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 4.53 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 { utilsService; static title = 'version-updater'; logger; 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, updateDependenciesVersion, })}`); const rootConfigPath = this.utilsService.resolveFilePath(utils_service_1.PACKAGE_JSON); const projects = this.utilsService.getWorkspaceProjects(); for (const projectName of Object.keys(projects).filter((key) => !key.includes('-e2e'))) { const project = projects[projectName]; if (project.root) { this.logger.debug(`Process project "${projectName}" in ${project.root}`); this.updateFolderPackageFromRootPackage({ rootConfigPath, appConfigPath: `${project.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, appConfigPath, })}`); if (appConfigPath === rootConfigPath) { throw new Error(`Source and destination are equal: ${appConfigPath}==${rootConfigPath}`); } let rootConfig; let folderConfig; try { const content = (0, fs_1.readFileSync)(rootConfigPath).toString(); rootConfig = JSON.parse(content); } catch (error) { throw new Error(`Wrong body of file ${rootConfigPath}`, { cause: error }); } try { const content = (0, fs_1.readFileSync)(appConfigPath).toString(); folderConfig = JSON.parse(content); let shouldSave = false; if (updatePackageVersion && rootConfig.version) { folderConfig.version = rootConfig.version; shouldSave = true; } if (updateDependenciesVersion) { this.updateDependencies(folderConfig, rootConfig); shouldSave = true; } if (shouldSave) { (0, fs_1.writeFileSync)(appConfigPath, JSON.stringify(folderConfig, null, 2)); } } catch (_error) { this.logger.warn(`Wrong body of file ${appConfigPath}`); } this.logger.debug(`End for ${JSON.stringify({ rootConfigPath, appConfigPath, })}`); } updateDependencies(folderConfig, rootConfig) { if (folderConfig.peerDependencies && rootConfig.dependencies) { for (const key of Object.keys(folderConfig.peerDependencies)) { if (rootConfig.dependencies[key]) { folderConfig.peerDependencies[key] = rootConfig.dependencies[key]; } } } if (folderConfig.dependencies) { for (const key of Object.keys(folderConfig.dependencies)) { if (rootConfig.dependencies?.[key]) { folderConfig.dependencies[key] = rootConfig.dependencies[key]; } if (rootConfig.devDependencies?.[key]) { folderConfig.dependencies[key] = rootConfig.devDependencies[key]; } } } } }; exports.VersionUpdaterService = VersionUpdaterService; exports.VersionUpdaterService = VersionUpdaterService = tslib_1.__decorate([ (0, common_1.Injectable)(), tslib_1.__metadata("design:paramtypes", [utils_service_1.UtilsService]) ], VersionUpdaterService); //# sourceMappingURL=version-updater.service.js.map