@intlayer/chokidar
Version:
Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.
22 lines (20 loc) • 774 B
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
//#region src/utils/getPathHash.ts
/**
* Fast hashing using cyrb53 algorithm for small unique strings with low collisions risk
*/
const getPathHash = (filePath) => {
let h1 = 3735928559;
let h2 = 1103547991;
for (let i = 0; i < filePath.length; i++) {
const ch = filePath.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 (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(36);
};
//#endregion
exports.getPathHash = getPathHash;
//# sourceMappingURL=getPathHash.cjs.map