UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

47 lines (46 loc) 1.75 kB
// @ts-nocheck import { encodeJson as encodeJson_1, decodeJson as decodeJson_1, encodeBinary as encodeBinary_1, decodeBinary as decodeBinary_1, } from "./KvEntry.js"; import { WireType, } from "../../../../../runtime/wire/index.js"; import { default as serialize, } from "../../../../../runtime/wire/serialize.js"; import { default as deserialize, } from "../../../../../runtime/wire/deserialize.js"; export function getDefaultValue() { return { values: [], }; } export function createValue(partialValue) { return { ...getDefaultValue(), ...partialValue, }; } export function encodeJson(value) { const result = {}; result.values = value.values.map(value => encodeJson_1(value)); return result; } export function decodeJson(value) { const result = getDefaultValue(); result.values = value.values?.map((value) => decodeJson_1(value)) ?? []; return result; } export function encodeBinary(value) { const result = []; for (const tsValue of value.values) { result.push([1, { type: WireType.LengthDelimited, value: encodeBinary_1(tsValue) }]); } return serialize(result); } export function decodeBinary(binary) { const result = getDefaultValue(); const wireMessage = deserialize(binary); const wireFields = new Map(wireMessage); collection: { const wireValues = wireMessage.filter(([fieldNumber]) => fieldNumber === 1).map(([, wireValue]) => wireValue); const value = wireValues.map((wireValue) => wireValue.type === WireType.LengthDelimited ? decodeBinary_1(wireValue.value) : undefined).filter(x => x !== undefined); if (!value.length) break collection; result.values = value; } return result; }