openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
17 lines (16 loc) • 581 B
JavaScript
//#region src/llm/utils/hash.ts
/** Fast deterministic hash to shorten long strings */
function shortHash(str) {
let h1 = 3735928559;
let h2 = 1103547991;
for (let i = 0; i < str.length; i++) {
const ch = str.charCodeAt(i);
h1 = Math.imul(h1 ^ ch, 2654435761);
h2 = Math.imul(h2 ^ ch, 1597334677);
}
h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
return (h2 >>> 0).toString(36) + (h1 >>> 0).toString(36);
}
//#endregion
export { shortHash as t };