2.4.2 • Published 2 months ago

@grammyjs/storage-supabase v2.4.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Supabase database storage adapter for grammY

Database storage adapter that can be used to store your session data in Supabase database when using sessions.

Installation

npm install @grammyjs/storage-supabase --save

Instructions

To get started, you first need to

  • Have both @supabase/supabase-js and grammy installed
  • Have a defined table for sessions in supabase will the following informations:

    • id as a primary key of type varchar, cannot be null
    • session as text. Make it nullable.

    You could also add created_at and updated_at to keep track of changes.

How to use

You can check examples folder for full blown usage, or see a simple use case below:

import { Bot, Context, session, SessionFlavor } from 'grammy';
import { supabaseAdapter } from '@grammyjs/storage-supabase';
import { createClient } from '@supabase/supabase-js';

interface SessionData {
  counter: number;
}
type MyContext = Context & SessionFlavor<SessionData>;

const URL = 'http://localhost:3000';
const KEY = 'some.fake.key';

// supabase instance
const supabase = createClient(URL, KEY);

//create storage
const storage = supabaseAdapter({
  supabase,
  table: 'session', // the defined table name you want to use to store your session
});

// Create bot and register session middleware
const bot = new Bot<MyContext>(''); // <-- put your bot token here
bot.use(
  session({
    initial: () => ({ counter: 0 }),
    storage,
  }),
);

// Display total stats of images uploaded so far
bot.command('stats', (ctx) => ctx.reply
(`Already got ${ctx.session.counter} images!`));

// Collect statistics of photos uploaded
bot.on(':photo', (ctx) => ctx.session.counter++);

bot.start();
2.4.2

2 months ago

2.4.1

5 months ago

2.3.2

8 months ago

2.4.0

7 months ago

2.3.1

8 months ago

2.3.0

11 months ago

2.2.0

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.2

1 year ago

2.0.0

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.1.0

3 years ago