UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

59 lines (58 loc) 2.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeBinary = exports.encodeBinary = exports.decodeJson = exports.encodeJson = exports.createValue = exports.getDefaultValue = void 0; // @ts-nocheck const KvEntry_js_1 = require("./KvEntry.js"); const index_js_1 = require("../../../../../runtime/wire/index.js"); const serialize_js_1 = __importDefault(require("../../../../../runtime/wire/serialize.js")); const deserialize_js_1 = __importDefault(require("../../../../../runtime/wire/deserialize.js")); function getDefaultValue() { return { values: [], }; } exports.getDefaultValue = getDefaultValue; function createValue(partialValue) { return { ...getDefaultValue(), ...partialValue, }; } exports.createValue = createValue; function encodeJson(value) { const result = {}; result.values = value.values.map(value => (0, KvEntry_js_1.encodeJson)(value)); return result; } exports.encodeJson = encodeJson; function decodeJson(value) { const result = getDefaultValue(); result.values = value.values?.map((value) => (0, KvEntry_js_1.decodeJson)(value)) ?? []; return result; } exports.decodeJson = decodeJson; function encodeBinary(value) { const result = []; for (const tsValue of value.values) { result.push([1, { type: index_js_1.WireType.LengthDelimited, value: (0, KvEntry_js_1.encodeBinary)(tsValue) }]); } return (0, serialize_js_1.default)(result); } exports.encodeBinary = encodeBinary; function decodeBinary(binary) { const result = getDefaultValue(); const wireMessage = (0, deserialize_js_1.default)(binary); const wireFields = new Map(wireMessage); collection: { const wireValues = wireMessage.filter(([fieldNumber]) => fieldNumber === 1).map(([, wireValue]) => wireValue); const value = wireValues.map((wireValue) => wireValue.type === index_js_1.WireType.LengthDelimited ? (0, KvEntry_js_1.decodeBinary)(wireValue.value) : undefined).filter(x => x !== undefined); if (!value.length) break collection; result.values = value; } return result; } exports.decodeBinary = decodeBinary;