@grammyjs/session-provider-mongodb

MongoDB session middleware for grammY

Usage no npm install needed!

<script type="module">
  import grammyjsSessionProviderMongodb from 'https://cdn.skypack.dev/@grammyjs/session-provider-mongodb';
</script>

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)