@pega/custom-dx-components
Version:
Utility for building custom UI components
101 lines (87 loc) • 3.04 kB
JavaScript
import chalk from 'chalk';
import { getComponents, validateSemver, updateConfigVersion, addDebugLog, getLibraryArchivesVersions, getConfigDefaults } from '../../util.js';
export const updateAllComponentsConfig = async newVersion => {
addDebugLog('updateAllComponentsConfig', `newVersion: ${newVersion}`, '');
const componentList = await getComponents();
const orgLib = getConfigDefaults();
// const currentOrgLib = `${orgLib.organization}_${orgLib.library}`;
const currentOrgLib = orgLib.currentOrgLib;
for (const index in componentList) {
const componentKey = componentList[index];
await updateConfigVersion(componentKey, newVersion, currentOrgLib);
}
};
export const getNextVersion = async () => {
addDebugLog('getNextVersion', '', '');
const orgLib = getConfigDefaults();
const currentOrgLib = orgLib.currentOrgLib;
const archiveVersionList = await getLibraryArchivesVersions(currentOrgLib);
if (archiveVersionList && archiveVersionList.length > 0) {
let lastVersion = archiveVersionList[archiveVersionList.length - 1];
lastVersion = lastVersion.replaceAll('-dev', '');
const arVer = lastVersion.split('.');
arVer[2] = (parseInt(arVer[2]) + 1).toString();
const incrVersion = arVer.join('.');
return incrVersion;
} else {
return '0.0.1';
}
};
export const getCreateVersionComponentQuestions = async () => {
addDebugLog('getCreateVersionComponentQuestions', '', '');
const componentDefaults = getConfigDefaults();
// increment the version
const incrVersion = await getNextVersion();
console.log(`\nCurrent library: ${chalk.green(`${componentDefaults.currentOrgLib}`)}`);
return [
{
name: 'version',
message: 'Enter version ',
default: incrVersion,
validate: value => {
if (validateSemver(value)) {
return true;
}
return 'Please provide semver compatible version e.g 0.0.1';
}
},
{
name: 'permBuild',
type: 'confirm',
message: `Version ${chalk.bold.yellow('PERMANENT')} upon publish ?`,
default: !componentDefaults.devBuild
},
{
name: 'copyExisting',
type: 'confirm',
message: 'Copy current components to new version ?',
default: true
}
];
};
export const getCreateVersionComponentCLQuestions = async () => {
addDebugLog('getCreateVersionComponentCLQuestions', '', '');
const componentDefaults = getConfigDefaults();
// increment the version
const incrVersion = await getNextVersion();
console.log(`\nCurrent library: ${chalk.green(`${componentDefaults.currentOrgLib}`)}`);
return [
{
name: 'version',
message: 'Enter version ',
default: incrVersion,
validate: value => {
if (validateSemver(value)) {
return true;
}
return 'Please provide semver compatible version e.g 0.0.1';
}
},
{
name: 'copyExisting',
type: 'confirm',
message: 'Copy current components to new version ?',
default: true
}
];
};