RSS Git Download  Clone
Raw Blame History
if (!String.prototype.padStart) {
    String.prototype.padStart = function padStart(targetLength, padString) {
        targetLength = targetLength >> 0; //floor if number or convert non-number to 0;
        padString = String(padString || ' ');
        if (this.length > targetLength) {
            return String(this);
        } else {
            targetLength = targetLength - this.length;
            if (targetLength > padString.length) {
                padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed
            }
            return padString.slice(0, targetLength) + String(this);
        }
    };
}

module.exports.empty = (spec) => {
    spec = String(spec).trim();
    return spec === undefined || spec === '' || spec === 'undefined'
}


module.exports.inject = (str, options) => {

    const findPrefix = str.indexOf(options.prefix);
    const postixIndex = str.indexOf(options.postfix);
    if (findPrefix === -1 && postixIndex === -1 && !options.header && !options.footer) {
        return;
    }

    if (findPrefix === -1 && postixIndex === -1) {
        let replaceText = options.prefix + '\n' + options.replace + '\n' + options.postfix;
        if (options.header) {
            str = replaceText + '\n' + str;
        } else {
            str += '\n' + replaceText;
        }
    } else {
        const prefixIndex = findPrefix + options.prefix.length;
        str = str.substring(0, prefixIndex) + '\n' + options.replace + '\n' + str.substring(postixIndex);
    }
    return str;
}