%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/forge/takeaseat.eco-n-tech.co.uk/node_modules/base62/
Upload File :
Create Path :
Current File : //home/forge/takeaseat.eco-n-tech.co.uk/node_modules/base62/base62.js

module.exports = (function (Base62) {
    "use strict";

    var DEFAULT_CHARACTER_SET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    Base62.encode = function(integer){
        if (integer === 0) {return '0';}
        var s = '';
        while (integer > 0) {
            s = Base62.characterSet[integer % 62] + s;
            integer = Math.floor(integer/62);
        }
        return s;
    };

    var defaultCharsetDecode = function defaultCharsetDecode (base62String) {
        var value = 0,
            i = 0,
            length = base62String.length,
            charValue;

        for (; i < length; i++) {
            charValue = base62String.charCodeAt(i);

            if (charValue < 58) {
                charValue = charValue - 48;
            } else if (charValue < 91) {
                charValue = charValue - 29;
            } else {
                charValue = charValue - 87;
            }

            value += charValue * Math.pow(62, length - i - 1);
        }

        return value;
    };

    var customCharsetDecode = function customCharsetDecode (base62String) {
        var val = 0,
            i = 0,
            length = base62String.length,
            characterSet = Base62.characterSet;

        for (; i < length; i++) {
            val += characterSet.indexOf(base62String[i]) * Math.pow(62, length - i - 1);
        }

        return val;
    };

    var decodeImplementation = null;

    Base62.decode = function(base62String){
        return decodeImplementation(base62String);
    };

    Base62.setCharacterSet = function(chars) {
        var arrayOfChars = chars.split(""), uniqueCharacters = [];

        if(arrayOfChars.length !== 62) throw Error("You must supply 62 characters");

        arrayOfChars.forEach(function(char){
            if(!~uniqueCharacters.indexOf(char)) uniqueCharacters.push(char);
        });

        if(uniqueCharacters.length !== 62) throw Error("You must use unique characters.");

        Base62.characterSet = arrayOfChars;

        decodeImplementation = chars === DEFAULT_CHARACTER_SET ? defaultCharsetDecode : customCharsetDecode;
    };

    Base62.setCharacterSet(DEFAULT_CHARACTER_SET);
    return Base62;
}({}));

Zerion Mini Shell 1.0