basant307/AI_Governance_Project
048
1"use strict";2Object.defineProperty(exports, "__esModule", { value: true });3exports.RespEncoderLegacy = void 0;4const extensions_1 = require("./extensions");5const JsonPackExtension_1 = require("../JsonPackExtension");6const RespEncoder_1 = require("./RespEncoder");7const REG_RN = /[\r\n]/;8const isSafeInteger = Number.isSafeInteger;9class RespEncoderLegacy extends RespEncoder_1.RespEncoder {10 writeAny(value) {11 switch (typeof value) {12 case 'number':13 return this.writeNumber(value);14 case 'string':15 return this.writeStr(value);16 case 'boolean':17 return this.writeSimpleStr(value ? 'TRUE' : 'FALSE');18 case 'object': {19 if (!value)20 return this.writeNull();21 if (value instanceof Array)22 return this.writeArr(value);23 if (value instanceof Uint8Array)24 return this.writeBin(value);25 if (value instanceof Error)26 return this.writeErr(value.message);27 if (value instanceof Set)28 return this.writeSet(value);29 if (value instanceof JsonPackExtension_1.JsonPackExtension) {30 if (value instanceof extensions_1.RespPush)31 return this.writeArr(value.val);32 if (value instanceof extensions_1.RespVerbatimString)33 return this.writeStr(value.val);34 if (value instanceof extensions_1.RespAttributes)35 return this.writeObj(value.val);36 }37 return this.writeObj(value);38 }39 case 'undefined':40 return this.writeUndef();41 case 'bigint':42 return this.writeSimpleStrAscii(value + '');43 default:44 return this.writeUnknown(value);45 }46 }47 writeNumber(num) {48 if (isSafeInteger(num))49 this.writeInteger(num);50 else51 this.writeSimpleStrAscii(num + '');52 }53 writeStr(str) {54 const length = str.length;55 if (length < 64 && !REG_RN.test(str))56 this.writeSimpleStr(str);57 else58 this.writeBulkStr(str);59 }60 writeNull() {61 this.writeNullArr();62 }63 writeErr(str) {64 if (str.length < 64 && !REG_RN.test(str))65 this.writeSimpleErr(str);66 else67 this.writeBulkStr(str);68 }69 writeSet(set) {70 this.writeArr([...set]);71 }72 writeArr(arr) {73 const writer = this.writer;74 const length = arr.length;75 writer.u8(42);76 this.writeLength(length);77 writer.u16(3338);78 for (let i = 0; i < length; i++) {79 const val = arr[i];80 if (val === null)81 this.writeNullStr();82 else83 this.writeAny(val);84 }85 }86 writeObj(obj) {87 const writer = this.writer;88 const keys = Object.keys(obj);89 const length = keys.length;90 writer.u8(42);91 this.writeLength(length << 1);92 writer.u16(3338);93 for (let i = 0; i < length; i++) {94 const key = keys[i];95 this.writeStr(key);96 const val = obj[key];97 if (val === null)98 this.writeNullStr();99 else100 this.writeAny(val);101 }102 }103}104exports.RespEncoderLegacy = RespEncoderLegacy;105//# sourceMappingURL=RespEncoderLegacy.js.map