protobuf-es
protobuf-es copied to clipboard
Include field and type name in toBinary errors?
Would folks be open to adding more information to errors returned from toBinary? For example, right now I'm getting this error:
Error: invalid uint32: -1
at assertUInt32 (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js:487:15)
at BinaryWriter.uint32 (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js:161:9)
at writeScalarValue (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:164:20)
at writeScalar (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:71:5)
at writeField (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:55:13)
at writeFields (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:38:9)
at writeMessageField (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:78:9)
at writeField (file:///home/node/app/node_modules/.pnpm/@[email protected]/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js:61:13)
I can't tell which field was being written, or which message type. If we added a try/catch around writeField we could add this information. I'm happy to submit a PR if this is something folks want.
Hey Ben, it would be nice to provide more context in those errors if we can avoid regressions on performance, and keep bundle size reasonable.
It's not as simple as catching everything in writeField though, since it's called recursively.