UNPKG

@kurrent/kurrentdb-client

Version:
29 lines 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.structuredUUIDToString = exports.createUUID = void 0; exports.parseUUID = parseUUID; const crypto_1 = require("crypto"); const shared_pb_1 = require("../../generated/kurrentdb/protocols/v1/shared_pb"); const createUUID = (id = (0, crypto_1.randomUUID)()) => { const uuid = new shared_pb_1.UUID(); uuid.setString(id); return uuid; }; exports.createUUID = createUUID; function parseUUID(uuid) { if (!uuid) return undefined; if (uuid.hasStructured()) { return (0, exports.structuredUUIDToString)(uuid.getStructured()); } return uuid.getString(); } const structuredUUIDToString = (structured) => { const ms = toUnsignedHex(structured.getMostSignificantBits()); const ls = toUnsignedHex(structured.getLeastSignificantBits()); return `${ms.slice(0, 8)}-${ms.slice(8, 12)}-${ms.slice(12)}-${ls.slice(0, 4)}-${ls.slice(4)}`; }; exports.structuredUUIDToString = structuredUUIDToString; const U64_MASK = (1n << 64n) - 1n; const toUnsignedHex = (value) => (BigInt(value) & U64_MASK).toString(16).padStart(16, "0"); //# sourceMappingURL=grpcUUID.js.map