ksuid-edge
Version:
Edge and browser-compatible KSUID generator
32 lines • 1.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.debase62 = exports.base62 = void 0;
const base_convert_int_array_1 = __importDefault(require("base-convert-int-array"));
const BASE62 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function base62(view, fixedLength) {
const numbs = new Array(view.byteLength);
for (let offset = 0; offset < view.byteLength; offset++) {
numbs[offset] = view.getUint8(offset);
}
return (0, base_convert_int_array_1.default)(numbs, { from: 256, to: 62, fixedLength })
.map((value) => BASE62[value])
.join('');
}
exports.base62 = base62;
// https://github.com/novemberborn/ksuid/blob/90ca4c1508f216e03923de610291786a0d6a868c/base62.js#L13C40-L21C85
function debase62(data, fixedLength) {
const input = Array.from(data, (char) => {
const charCode = char.charCodeAt(0);
if (charCode < 58)
return charCode - 48;
if (charCode < 91)
return charCode - 55;
return charCode - 61;
});
return new Uint8Array((0, base_convert_int_array_1.default)(input, { from: 62, to: 256, fixedLength })).buffer;
}
exports.debase62 = debase62;
//# sourceMappingURL=base62.js.map