A whatsapp-web.js wrapper for NestJS to create WhatsApp bots
About • Installation • Usage • To-Do • License • Credits
NestWhats is a module for NestJS that abstracts methods from whatsapp-web.js to facilitate the creation of bots for WhatsApp.
whatsapp-web.js is a WhatsApp API client that connects through WhatsApp Web browser app using Puppeteer
Important
It is not guaranteed you will not be blocked by using this method. WhatsApp does not allow bots or unofficial clients on their platform, so this shouldn't be considered totally safe.
Note
NodeJS v20+
is required
$ npm i nestwhats whatsapp-web.js
$ yarn add nestwhats whatsapp-web.js
$ pnpm add nestwhats whatsapp-web.js
Once the installation process is complete, we can import the NestWhatsModule
into the root AppModule
:
import { NestWhatsModule } from 'nestwhats';
import { Module } from '@nestjs/common';
import { AppUpdate } from './app.update';
@Module({
imports: [
NestWhatsModule.forRoot({
prefix: "!"
})
],
providers: [AppUpdate]
})
export class AppModule {}
Then create app.update.ts
file and add On
/Once
decorators for handling whatsapp-web.js events:
import { Injectable, Logger } from '@nestjs/common';
import { Context, On, Once, ContextOf } from 'nestwhats';
import { Client, Events } from 'whatsapp-web.js';
@Injectable()
export class AppUpdate {
private readonly logger = new Logger(AppUpdate.name);
public constructor(private readonly client: Client) {}
@Once("ready")
public onReady() {
this.logger.log(`Bot logged in as ${this.client.info.pushname}`);
}
@On("message_create")
public onWarn(@Context() [message]: ContextOf<'message_create'>) {
this.logger.log(message);
}
}
Whenever you need to handle any event data, use the Context
decorator.
If you want to fully dive into NestWhats, check out these resources:
- NestJS - A progressive framework for creating well-architectured applications.
- whatsapp-web.js - A WhatsApp client library for NodeJS that connects through the WhatsApp Web browser app
- Docs
- GH Pages or Wiki
- JSDoc in code
- New Providers
-
This project is inspired in Necord - 🤖 A module for creating Discord bots using NestJS, based on Discord.js
NestWhats is an adaptation of Necord to work with whatsapp-web.js
I NedcloarBR am a contributor to Necord -
Want to see your name on this list? - see the Contribution page.