const defs = require('./defs');
const format = require('node:util').format;
const HEARTBEAT = require('./frame').HEARTBEAT;

module.exports.closeMessage = (close) => {
  const code = close.fields.replyCode;
  return format('%d (%s) with message "%s"', code, defs.constant_strs[code], close.fields.replyText);
};

module.exports.methodName = (id) => defs.info(id).name;

module.exports.inspect = (frame, showFields) => {
  if (frame === HEARTBEAT) {
    return '<Heartbeat>';
  } else if (!frame.id) {
    return format('<Content channel:%d size:%d>', frame.channel, frame.size);
  } else {
    const info = defs.info(frame.id);
    return format('<%s channel:%d%s>', info.name, frame.channel, showFields ? ` ${JSON.stringify(frame.fields, undefined, 2)}` : '');
  }
};
