calebthebrewer/gulp-selectors

View on GitHub
lib/utils/generate-shortname.js

Summary

Maintainability
A
0 mins
Test Coverage
module.exports = generateShortname;

    /**
 * Helper function for generating shortnames based on an alphabetic library.
 *
 * @param seed Integer
 * @returns {string Shortname}
 */
function generateShortname(seed) {
    if (seed !== parseInt(seed, 10)) {
        throw new Error('Seed must be a number');
    }

    if (seed < 0) {
        throw new Error('Seed must be at least 0');
    }

    var library = 'abcdefghijklmnopqrstuvwxyz',
        libraryLength = library.length,
        prefix = '';
    //break the seed down if it is larger than the library
    if (seed >= libraryLength) {
        prefix = generateShortname(Math.floor(seed / libraryLength) - 1);
    }
    //return the prefixed shortname
    return prefix + library[seed % libraryLength];
}