Skip to content

MediaMessage Builder ​

MediaMessage provides a unified, fluent builder interface for sending all standard media types in WhatsApp: Images, Videos, Audio, Documents, and Stickers.


Supported Media Types ​

You can configure the media type in the constructor or by calling .setType():

  • 'image' (Default)
  • 'video'
  • 'audio'
  • 'document'
  • 'sticker'

Examples ​

1. Sending an Image ​

javascript
import { MediaMessage } from 'leaves-guardian';

const image = new MediaMessage(client, 'image')
  .setSource('https://example.com/photo.jpg')
  .setBody('📸 Check out our new office space!')
  .setAdReply({
    title: 'Leaves Studio',
    body: 'Official Gallery'
  });

await client.sendMessage(msg.chat.id, image);

2. Sending a Document (PDF / Zip) ​

javascript
const document = new MediaMessage(client, 'document')
  .setSource(pdfBuffer)
  .setFileName('monthly_invoice_october.pdf')
  .setMimetype('application/pdf')
  .setBody('📄 Here is your requested monthly invoice.');

await client.sendMessage(msg.chat.id, document);

3. Sending an Audio Voice Note (PTT) ​

javascript
const voiceNote = new MediaMessage(client, 'audio')
  .setSource('https://example.com/audio.ogg')
  .setPtt(true); // Sends as a WhatsApp push-to-talk voice note

await client.sendMessage(msg.chat.id, voiceNote);

4. Sending a Video as GIF ​

javascript
const gif = new MediaMessage(client, 'video')
  .setSource('https://example.com/animation.mp4')
  .setGifPlayback(true)
  .setBody('🎉 Congratulations!');

await client.sendMessage(msg.chat.id, gif);

Methods ​

MethodDescription
.setType(type)Changes active media type ('image', 'video', 'audio', 'document', 'sticker').
.setSource(source)Sets the media payload (URL string, Buffer, or filesystem path).
.setFileName(name)Sets the displayed filename (required for documents).
.setMimetype(mimetype)Sets explicit MIME type (e.g. 'application/pdf').
.setPtt(boolean)When true on audio, sends as a voice note.
.setGifPlayback(boolean)When true on video, plays as an animated GIF.
.setBody(caption)Sets the text caption accompanying the media.

Released under the MIT License.