Skip to content

Commit 9265f2f

Browse files
andrewDoingjustinmk
authored andcommitted
feat(transport): show contents of invalid RPC message
1 parent ddf8bfb commit 9265f2f

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

packages/neovim/src/utils/transport.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
import { EventEmitter } from 'node:events';
6+
import { inspect } from 'node:util';
67

78
import {
89
encode,
@@ -111,7 +112,21 @@ class Transport extends EventEmitter {
111112
iter.next().then(resolved => {
112113
if (!resolved.done) {
113114
if (!Array.isArray(resolved.value)) {
114-
throw new TypeError('expected msgpack result to be array');
115+
let valstr = '?';
116+
try {
117+
valstr = inspect(resolved.value, {
118+
sorted: true,
119+
maxArrayLength: 10,
120+
maxStringLength: 500,
121+
compact: true,
122+
breakLength: 500,
123+
});
124+
} catch (error) {
125+
console.error('Failed to inspect value: ', error);
126+
}
127+
throw new TypeError(
128+
`Expected msgpack result to be an array, but got ${valstr}`
129+
);
115130
}
116131
this.parseMessage(resolved.value);
117132
return resolveGeneratorRecursively(iter);

0 commit comments

Comments
 (0)