UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

106 lines (105 loc) 3.61 kB
// @ts-nocheck import { tsValueToJsonValueFns, jsonValueToTsValueFns, } from "../../../../../runtime/json/scalar.js"; import { default as serialize, } from "../../../../../runtime/wire/serialize.js"; import { tsValueToWireValueFns, wireValueToTsValueFns, } from "../../../../../runtime/wire/scalar.js"; import { default as deserialize, } from "../../../../../runtime/wire/deserialize.js"; export function getDefaultValue() { return { start: new Uint8Array(), end: new Uint8Array(), limit: 0, reverse: false, }; } export function createValue(partialValue) { return { ...getDefaultValue(), ...partialValue, }; } export function encodeJson(value) { const result = {}; if (value.start !== undefined) result.start = tsValueToJsonValueFns.bytes(value.start); if (value.end !== undefined) result.end = tsValueToJsonValueFns.bytes(value.end); if (value.limit !== undefined) result.limit = tsValueToJsonValueFns.int32(value.limit); if (value.reverse !== undefined) result.reverse = tsValueToJsonValueFns.bool(value.reverse); return result; } export function decodeJson(value) { const result = getDefaultValue(); if (value.start !== undefined) result.start = jsonValueToTsValueFns.bytes(value.start); if (value.end !== undefined) result.end = jsonValueToTsValueFns.bytes(value.end); if (value.limit !== undefined) result.limit = jsonValueToTsValueFns.int32(value.limit); if (value.reverse !== undefined) result.reverse = jsonValueToTsValueFns.bool(value.reverse); return result; } export function encodeBinary(value) { const result = []; if (value.start !== undefined) { const tsValue = value.start; result.push([1, tsValueToWireValueFns.bytes(tsValue)]); } if (value.end !== undefined) { const tsValue = value.end; result.push([2, tsValueToWireValueFns.bytes(tsValue)]); } if (value.limit !== undefined) { const tsValue = value.limit; result.push([3, tsValueToWireValueFns.int32(tsValue)]); } if (value.reverse !== undefined) { const tsValue = value.reverse; result.push([4, tsValueToWireValueFns.bool(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 = wireValueToTsValueFns.bytes(wireValue); if (value === undefined) break field; result.start = value; } field: { const wireValue = wireFields.get(2); if (wireValue === undefined) break field; const value = wireValueToTsValueFns.bytes(wireValue); if (value === undefined) break field; result.end = value; } field: { const wireValue = wireFields.get(3); if (wireValue === undefined) break field; const value = wireValueToTsValueFns.int32(wireValue); if (value === undefined) break field; result.limit = value; } field: { const wireValue = wireFields.get(4); if (wireValue === undefined) break field; const value = wireValueToTsValueFns.bool(wireValue); if (value === undefined) break field; result.reverse = value; } return result; }