Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new payload size feature for the MQTTX CLI, enabling users to view message payload sizes in human-readable format and generate random payloads of specified sizes.
- Adds utility functions to parse and format payload sizes.
- Integrates payload size display in the subscribe command and payload generation in the publish/benchmark commands.
- Updates tests to cover edge cases for payload size parsing and random payload generation.
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| cli/src/utils/payloadGenerator.ts | Implements functions for parsing payload size strings and generating random payloads. |
| cli/src/utils/formatter.ts | Provides a utility for formatting bytes into human-readable strings. |
| cli/src/lib/sub.ts | Enhances subscription output to display payload size information. |
| cli/src/lib/pub.ts | Adds logic to generate and use random payload based on provided size options. |
| cli/src/index.ts | Registers new CLI options for payload size handling. |
| cli/src/tests/utils/*.test.ts | Adds comprehensive tests for the new payload size functionalities. |
Red-Asuka
approved these changes
Jun 7, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Checklist
If you have any questions, you can refer to the Contributing Guide
What is the current behavior?
MQTTX CLI currently lacks the capability to display and generate payload sizes. Users cannot easily view message sizes or generate payloads of specific sizes for testing purposes.
Issue Number
Example: #123
What is the new behavior?
New Features:
subcommand now shows message payload sizes in human-readable format (e.g., "1.5KB", "2.3MB")CLI Usage:
mqttx sub -t topic(automatically shows payload sizes)1KB,2.5MB,512B, or plain numbers (defaults to bytes)Technical Additions:
formatBytes(): Converts bytes to human-readable format with proper decimal handlingparsePayloadSize(): Parses size strings (supports B/KB/MB/GB, case-insensitive)generateRandomPayload(): Creates random payloads with MQTT size limit validationDoes this PR introduce a breaking change?
Specific Instructions
The new payload size utilities are fully backward compatible. The
subcommand output now includes size information without affecting existing functionality.Other information
All new functions include comprehensive test coverage with 37+ test cases covering edge cases, error handling, and various size formats.