in source/packages/services/bulkcerts/src/certificates/certificatestask.service.ts [294:361]
private constructCommonName(certInfo: CertificateInfo): CertificateInfo {
logger.debug(
`certificatestask.service constructCommonName: in:${JSON.stringify(certInfo)}`
);
let prefix: string;
let generator: string;
if (typeof certInfo === 'undefined' || Object.keys(certInfo).length === 0) {
certInfo = {};
certInfo['commonName'] = this.commonName;
}
const certInfoRes: CertificateInfo = Object.assign({}, certInfo);
certInfoRes['commonName'] = {};
const prefixRE = /`((.*?)`)/g;
const generatorRE = /\${((.*?)\})/g;
const incrementRE = /\(((.*?)\))/g;
let commonName = certInfo.commonName.toString();
// Construct Prefix
const prefixArr = commonName.match(prefixRE);
if (typeof prefixArr !== 'undefined' && prefixArr !== null && prefixArr.length !== 0) {
prefix = prefixArr[0].replace(/[`/]/gi, '');
certInfoRes['commonName']['prefix'] = prefix;
commonName = commonName.replace(prefixRE, '');
}
// Construct Generator
const generatorArr = commonName.match(generatorRE);
if (
typeof generatorArr !== 'undefined' &&
generatorArr !== null &&
generatorArr.length !== 0
) {
generator = generatorArr[0]
.replace(/[${}/]/gi, '')
.replace(incrementRE, '')
.toLowerCase();
certInfoRes['commonName']['generator'] = CommonNameGenerator[generator];
if (typeof generator !== 'undefined' && generator === 'increment') {
const quantityArr = commonName.match(incrementRE);
if (typeof quantityArr !== 'undefined' && quantityArr !== null) {
certInfoRes['commonName']['quantity'] = parseInt(
quantityArr[0].replace(/[()/]/gi, '')
);
}
certInfoRes['commonName']['commonNameStart'] = commonName.replace(generatorRE, '');
} else if (generator === 'static') {
certInfoRes['commonName']['commonNameStatic'] = commonName.replace(
generatorRE,
''
);
} else if (generator === 'list') {
certInfoRes['commonName']['quantity'] = certInfoRes.commonNameList.length;
certInfoRes['commonName']['commonNameList'] = certInfoRes.commonNameList;
}
} else {
certInfoRes['commonName']['generator'] = CommonNameGenerator.static;
certInfoRes['commonName']['commonNameStatic'] = commonName;
}
logger.debug(
`certificatestask.service constructCommonName: exit:${JSON.stringify(certInfoRes)}`
);
return certInfoRes;
}