UNPKG

@tanstack/db

Version:

A reactive client store for building super fast apps on sync

29 lines (28 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); function createRuntimeReferenceIdentityFactory() { const namespace = createRuntimeReferenceNamespace(); const referenceIds = /* @__PURE__ */ new WeakMap(); let sequence = 0; return (value) => { let referenceId = referenceIds.get(value); if (referenceId === void 0) { referenceId = ++sequence; referenceIds.set(value, referenceId); } return [`runtimeReference`, namespace, referenceId]; }; } const getRuntimeReferenceIdentity = createRuntimeReferenceIdentityFactory(); function createRuntimeReferenceNamespace() { const randomValues = new Uint32Array(4); const runtimeCrypto = Reflect.get(globalThis, `crypto`); if (typeof runtimeCrypto?.getRandomValues === `function`) { runtimeCrypto.getRandomValues(randomValues); return Array.from(randomValues, (value) => value.toString(36)).join(`-`); } return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`; } exports.createRuntimeReferenceIdentityFactory = createRuntimeReferenceIdentityFactory; exports.getRuntimeReferenceIdentity = getRuntimeReferenceIdentity; //# sourceMappingURL=runtime-reference-identity.cjs.map