seyfert/README.md
2022-08-01 20:57:51 -05:00

2.3 KiB

biscuit

A brand new bleeding edge non bloated Discord library

biscuit

Install (for node18)

npm install @biscuitland/core
yarn add @biscuitland/core

for further reading join our Discord

Most importantly, biscuit is:

  • A wrapper to interface the Discord API
  • A bleeding edge library

Biscuit is primarily inspired by Discord.js and Discordeno but it does not include a cache layer by default, we believe that you should not make software that does things it is not supposed to do.

Why biscuit?:

  • Minimal, non feature-rich!
  • Scalable

Example bot (TS/JS)

import { ChatInputApplicationCommandBuilder, Session } from '@biscuitland/core';
import { GatewayIntents } from '@biscuitland/api-types';

const session = new Session({ token: 'your token', intents: GatewayIntents.Guilds });

const commands = [
    new ChatInputApplicationCommandBuilder()
        .setName('ping')
        .setDescription('Replies with pong!')
        .toJSON()
]

session.events.on('ready', async ({ user }) => {
    console.log('Logged in as:', user.username);
    await session.upsertApplicationCommands(commands, 'GUILD_ID');
});

session.events.on('interactionCreate', (interaction) => {
    if (interaction.isCommand()) {
        if (interaction.commandName === 'ping') {
            interaction.respond({ with: { content: 'pong!' } });
        }
    }
});

session.start();

Known issues:

  • node18 is required to run the library, however --experimental-fetch flag should work on node16+
  • redis cache (wip)
  • no optimal way to deliver a webspec bun version to the registry (#50)