private constructCommonName()

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;
    }