RSS Git Download  Clone
Raw Blame History
const cache = {};

const { extractStars } = require("../../helper/extract-stars.function.js");

export function extractTitle(pkg: any): string {
    if (pkg === undefined) {
        return '';
    }
    if (pkg.name === undefined) {
        return '';
    }
    if (cache.hasOwnProperty(pkg.name)) {
        return cache[pkg.name];
    }

    if (pkg.name === 'corifeus') {
        cache[pkg.name] = 'Corifeus';
        return cache[pkg.name];
    }
    if (pkg.name.startsWith('grunt')) {
        let result = pkg.name.split('-').map((word: string) => {
            return word[0].toUpperCase() + word.substr(1)
        });
        result = result.slice();
        result.splice(1, 1);

        cache[pkg.name] = result.join(' ');
        return cache[pkg.name];
    } else {
        let result: string = pkg.name.split('-').map((word: string) => {
            return word[0].toUpperCase() + word.substr(1)
        }).slice(1).join(' ');
        if (result !== undefined && result.startsWith('Openwrt')) {
            result = result.replace('Openwrt', 'OpenWrt')
        }
        result = result.split(' ').map((elem: string) => {
            if (elem.length === 2) {
                elem = elem.toUpperCase()
            } else if (elem.toLowerCase() === 'pdf') {
                elem = elem.toUpperCase()
            } else if (elem.endsWith('db')) {
                elem = elem.substr(0, elem.length - 2) + 'DB'
            }
            return elem
        }).join(' ')
        cache[pkg.name] = result;
        return cache[pkg.name];
    }
}

export function extractTitleWithStars(pkg: any): string {
    let title = extractTitle(pkg);
    if (pkg !== undefined && pkg !== null && pkg.corifeus.stargazers_count < 1) {
        return title
    }
    return `${title} ⭐${extractStars(pkg.corifeus.stargazers_count)}`;
}

export { extractStars }