protobuf.js version: 6.7.3
Unable to decode big message.
const protobuf = require("protobufjs");
const proto = {
"nested": {
"AwesomeMessage": {
"fields": {
"awesomeField": {
"type": "bytes",
"id": 1
}
}
}
}
};
var root = protobuf.Root.fromJSON(proto);
var AwesomeMessage = root.lookupType("AwesomeMessage");
var buff = Buffer.alloc(10*1024*1024, 'a');
var payload = { awesomeField: buff };
var errMsg = AwesomeMessage.verify(payload);
var message = AwesomeMessage.create(payload);
var object = AwesomeMessage.toObject(message, {
longs: String,
enums: String,
bytes: String,
});
/Users/andrey/ttt/node_modules/@protobufjs/base64/index.js:73
return String.fromCharCode.apply(String, string);
^
RangeError: Maximum call stack size exceeded
at Object.encode (/Users/andrey/ttt/node_modules/@protobufjs/base64/index.js:73:32)
at Type._AwesomeMessage$toObject [as toObject] (eval at eof (/Users/andrey/ttt/node_modules/@protobufjs/codegen/index.js:103:25), <anonymous>:11:50)
at Object.<anonymous> (/Users/andrey/ttt/1.js:27:29)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:393:7)
Quick and dirty fix could be something like:
- return String.fromCharCode.apply(String, string);
+ var enc = require("text-encoding")
+ var encoder = new enc.TextEncoder();
+ return encoder.encode(string)
protobuf.js version: 6.7.3
Unable to decode big message.
Quick and dirty fix could be something like: