README
MongoDB session middleware for Telegraf
MongoDB powered simple session middleware for Telegraf 4.0 with TypeScript support.
Installation
$ npm install @grammyjs/session-provider-mongodb
$ yarn add @grammyjs/session-provider-mongodb
Example
const { Bot } = require('grammy');
const { MongoClient } = require('mongodb');
const { session } = require('@grammyjs/session-provider-mongodb');
const bot = new Bot(process.env.BOT_TOKEN);
MongoClient.connect(process.env.MONGODB_URL, { useNewUrlParser: true, useUnifiedTopology: true })
.then(client => {
const db = client.db();
bot.use(session(db, { collectionName: 'sessions' }));
});
Example (TypeScript)
import { Context, Telegraf } from 'grammy';
import { MongoClient } from 'mongodb';
import { session } from '@grammyjs/session-provider-mongodb';
export interface SessionContext extends Context {
session: any;
};
const bot = new Telegraf<SessionContext>(process.env.BOT_TOKEN);
MongoClient.connect(process.env.MONGODB_URL, { useNewUrlParser: true, useUnifiedTopology: true })
.then(client => {
const db = client.db();
bot.use(session(db, { sessionName: 'session', collectionName: 'sessions' }));
});
API
Options
collectionName: name for MongoDB collection (default:sessions)sessionName: context property name (default:session)sessionKeyFn: function that generates the session key from the context (default implementation, legacy deprecated function)