@deno/kv
Version:
A Deno KV client library optimized for Node.js.
96 lines (95 loc) • 3.8 kB
JavaScript
// @ts-nocheck
import { tsValueToJsonValueFns, jsonValueToTsValueFns, } from "../../../../../runtime/json/scalar.js";
import { default as serialize, } from "../../../../../runtime/wire/serialize.js";
import { tsValueToWireValueFns, wireValueToTsValueFns, unpackFns, } from "../../../../../runtime/wire/scalar.js";
import { default as deserialize, } from "../../../../../runtime/wire/deserialize.js";
export function getDefaultValue() {
return {
payload: new Uint8Array(),
deadlineMs: "0",
keysIfUndelivered: [],
backoffSchedule: [],
};
}
export function createValue(partialValue) {
return {
...getDefaultValue(),
...partialValue,
};
}
export function encodeJson(value) {
const result = {};
if (value.payload !== undefined)
result.payload = tsValueToJsonValueFns.bytes(value.payload);
if (value.deadlineMs !== undefined)
result.deadlineMs = tsValueToJsonValueFns.int64(value.deadlineMs);
result.keysIfUndelivered = value.keysIfUndelivered.map(value => tsValueToJsonValueFns.bytes(value));
result.backoffSchedule = value.backoffSchedule.map(value => tsValueToJsonValueFns.uint32(value));
return result;
}
export function decodeJson(value) {
const result = getDefaultValue();
if (value.payload !== undefined)
result.payload = jsonValueToTsValueFns.bytes(value.payload);
if (value.deadlineMs !== undefined)
result.deadlineMs = jsonValueToTsValueFns.int64(value.deadlineMs);
result.keysIfUndelivered = value.keysIfUndelivered?.map((value) => jsonValueToTsValueFns.bytes(value)) ?? [];
result.backoffSchedule = value.backoffSchedule?.map((value) => jsonValueToTsValueFns.uint32(value)) ?? [];
return result;
}
export function encodeBinary(value) {
const result = [];
if (value.payload !== undefined) {
const tsValue = value.payload;
result.push([1, tsValueToWireValueFns.bytes(tsValue)]);
}
if (value.deadlineMs !== undefined) {
const tsValue = value.deadlineMs;
result.push([2, tsValueToWireValueFns.int64(tsValue)]);
}
for (const tsValue of value.keysIfUndelivered) {
result.push([3, tsValueToWireValueFns.bytes(tsValue)]);
}
for (const tsValue of value.backoffSchedule) {
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 = wireValueToTsValueFns.bytes(wireValue);
if (value === undefined)
break field;
result.payload = value;
}
field: {
const wireValue = wireFields.get(2);
if (wireValue === undefined)
break field;
const value = wireValueToTsValueFns.int64(wireValue);
if (value === undefined)
break field;
result.deadlineMs = value;
}
collection: {
const wireValues = wireMessage.filter(([fieldNumber]) => fieldNumber === 3).map(([, wireValue]) => wireValue);
const value = wireValues.map((wireValue) => wireValueToTsValueFns.bytes(wireValue)).filter(x => x !== undefined);
if (!value.length)
break collection;
result.keysIfUndelivered = 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.backoffSchedule = value;
}
return result;
}