@stylex-extend/shared
Version:
Shared utilities for StyleX Extend
30 lines (28 loc) • 822 B
JavaScript
function xxhash(str) {
let i;
let l;
let hval = 0x811C9DC5;
for(i = 0, l = str.length; i < l; i++){
hval ^= str.charCodeAt(i);
hval += (hval << 1) + (hval << 4) + (hval << 7) + (hval << 8) + (hval << 24);
}
return `00000${(hval >>> 0).toString(36)}`.slice(-6);
}
const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
function seededRandom(seed) {
return function() {
const x = Math.sin(seed++) * 10000;
return x - Math.floor(x);
};
}
function randomAlpha() {
let r = '';
const seed = Math.floor(Math.random() * 1000000);
const random = seededRandom(seed);
for(let i = 0; i < 10; i++){
const index = Math.floor(random() * chars.length);
r += chars[index];
}
return r;
}
export { randomAlpha, xxhash };