{"version":3,"file":"string-hash-pool.cjs","names":["stringHashFNV1a"],"sources":["../../../src/common/data/string-hash-pool.ts"],"sourcesContent":["import { stringHashFNV1a } from './string-hash-fnv'\n\nexport function useStringHashPool() {\n  const hashToString: Map<number, string> = new Map()\n  const stringToHash: Map<string, number> = new Map()\n\n  function hash(s: string) {\n    let v: number | undefined = stringToHash.get(s)\n    if (v == null) {\n      v = stringHashFNV1a(s)\n      if (hashToString.has(v))\n        throw new Error(`Hash for '${s}' is already in use for '${hashToString.get(v)}`)\n      hashToString.set(v, s)\n      stringToHash.set(s, v)\n    }\n    return v\n  }\n\n  function stringForHash(v: number) {\n    return hashToString.get(v)\n  }\n\n  return {\n    hash,\n    stringForHash,\n  }\n}\n\nexport type UseStringHashPool = ReturnType<typeof useStringHashPool>\n"],"mappings":";;;;AAEA,SAAgB,oBAAoB;CAClC,MAAM,+BAAoC,IAAI,KAAK;CACnD,MAAM,+BAAoC,IAAI,KAAK;CAEnD,SAAS,KAAK,GAAW;EACvB,IAAI,IAAwB,aAAa,IAAI,EAAE;AAC/C,MAAI,KAAK,MAAM;AACb,OAAIA,oDAAgB,EAAE;AACtB,OAAI,aAAa,IAAI,EAAE,CACrB,OAAM,IAAI,MAAM,aAAa,EAAE,2BAA2B,aAAa,IAAI,EAAE,GAAG;AAClF,gBAAa,IAAI,GAAG,EAAE;AACtB,gBAAa,IAAI,GAAG,EAAE;;AAExB,SAAO;;CAGT,SAAS,cAAc,GAAW;AAChC,SAAO,aAAa,IAAI,EAAE;;AAG5B,QAAO;EACL;EACA;EACD"}