UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

86 lines (85 loc) 3.33 kB
// @ts-nocheck import { name2num, num2name, } from "./AtomicWriteStatus.js"; import { tsValueToJsonValueFns, jsonValueToTsValueFns, } from "../../../../../runtime/json/scalar.js"; import { WireType, } from "../../../../../runtime/wire/index.js"; import { default as serialize, } from "../../../../../runtime/wire/serialize.js"; import { default as Long, } from "../../../../../runtime/Long.js"; import { tsValueToWireValueFns, wireValueToTsValueFns, unpackFns, } from "../../../../../runtime/wire/scalar.js"; import { default as deserialize, } from "../../../../../runtime/wire/deserialize.js"; export function getDefaultValue() { return { status: "AW_UNSPECIFIED", versionstamp: new Uint8Array(), failedChecks: [], }; } export function createValue(partialValue) { return { ...getDefaultValue(), ...partialValue, }; } export function encodeJson(value) { const result = {}; if (value.status !== undefined) result.status = tsValueToJsonValueFns.enum(value.status); if (value.versionstamp !== undefined) result.versionstamp = tsValueToJsonValueFns.bytes(value.versionstamp); result.failedChecks = value.failedChecks.map(value => tsValueToJsonValueFns.uint32(value)); return result; } export function decodeJson(value) { const result = getDefaultValue(); if (value.status !== undefined) result.status = jsonValueToTsValueFns.enum(value.status); if (value.versionstamp !== undefined) result.versionstamp = jsonValueToTsValueFns.bytes(value.versionstamp); result.failedChecks = value.failedChecks?.map((value) => jsonValueToTsValueFns.uint32(value)) ?? []; return result; } export function encodeBinary(value) { const result = []; if (value.status !== undefined) { const tsValue = value.status; result.push([1, { type: WireType.Varint, value: new Long(name2num[tsValue]) }]); } if (value.versionstamp !== undefined) { const tsValue = value.versionstamp; result.push([2, tsValueToWireValueFns.bytes(tsValue)]); } for (const tsValue of value.failedChecks) { result.push([4, tsValueToWireValueFns.uint32(tsValue)]); } return serialize(result); } export function decodeBinary(binary) { const result = getDefaultValue(); const wireMessage = deserialize(binary); const wireFields = new Map(wireMessage); field: { const wireValue = wireFields.get(1); if (wireValue === undefined) break field; const value = wireValue.type === WireType.Varint ? num2name[wireValue.value[0]] : undefined; if (value === undefined) break field; result.status = value; } field: { const wireValue = wireFields.get(2); if (wireValue === undefined) break field; const value = wireValueToTsValueFns.bytes(wireValue); if (value === undefined) break field; result.versionstamp = value; } collection: { const wireValues = wireMessage.filter(([fieldNumber]) => fieldNumber === 4).map(([, wireValue]) => wireValue); const value = Array.from(unpackFns.uint32(wireValues)); if (!value.length) break collection; result.failedChecks = value; } return result; }