npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

esdi

v1.3.1

Published

ES6 Discord bot framework

Downloads

13

Readme

Esdi

ES6 Discord bot framework

Discord Twitter

GitHub npm

License Documentation ES6 Powered

Contributing Guide Code of Conduct Security Policy

Ko-fi

Table of Contents :book:

Introduction :rocket:

JOIN THE ESDI COMMUNITY (AND MEET THE OFFICIAL BOT) ON DISCORD!

Esdi is a "plug-and-play" framework for building extensible Discord bots in ES6. Esdi can be added as an npm dependency to your Node.js project and implemented with just a few lines of code. The example below will load up any local extension files for Esdi available in your project, uses a local PouchDB database for all data storage, and connects to your Discord application bot user via the provided token.

// import Esdi package
const Esdi = require('esdi')

// initialize Esdi
const server = new Esdi({
  discordToken: 'YOUR-DISCORD-BOT-TOKEN'
})

// load local Commands, Controllers, Events, Hooks, and Models
server.load(__dirname)

// start Esdi
server.start()

Since an Esdi bot is a standalone package, you can seamlessly integrate it into other Node applications or use it on its own. If you have plans to customize your bot, you can use the folder structure below in the root of your project folder to add custom extension files:

your-project-folder/
    ├── commands/
    │   └── ... add your custom commands here
    ├── controllers/
    │   └── ... add your custom controllers here
    ├── events/
    │   └── ... add your custom events here
    ├── hooks/
    │   └── ... add your custom hooks here
    └── models/
        └── ... add your custom models here

Setup :nut_and_bolt:

To get started with your own Esdi bot instance, please read our setup guide.

If you would like to add the official Esdi bot to a server instead of hosting your own instance, you will need Manage Server permissions on the server before visiting this link.

Documentation :bookmark_tabs:

You can read the latest Esdi documentation here.

There are also tutorials available. For example, you can learn how to add a custom command. There are also resources for handling webhooks from third-party services like GitHub and Ko-fi.

It is recommended to start with the first tutorial and work through each one in the provided order to build your understanding of the framework.

If you have further questions, join the Esdi Community on Discord!

Features :round_pushpin:

  • Obeys a multitude of commands
  • Listens to Discord events (e.g., someone joining a server)
  • Supports local (PouchDB) and remote (CouchDB) databases
  • Serves as middleware for webhooks
  • Handles regular routines and scheduled processes
  • Stands alone or integrates with pre-existing applications
  • Usable for any purpose: server management, games, third-party API integration, or something totally unique!
  • Extensible with custom commands, controllers, events, hooks, and models

Functionality :toolbox:

New "out-of-the-box" functionality is constantly being added to Esdi. Below is a curated list of Esdi's standout functionality:

  • github-redeploy global Hook - redeploys the Esdi server after receiving a GitHub webhook (learn more)
  • ko-fi channel Hook - converts a Ko-fi webhook into a message embed and posts it in a channel (learn more)
  • process-monitor global interval Event and status Command - reports the memory and processor usage of the server's Node.js process along with its uptime and Discord stats (learn more about Event) (learn more about Command)

Credits :horse_racing:

Esdi is created and maintained by Andrew Zigler, who can be reached on Twitter and Discord.

Esdi is made possible by discord.js and project supporters.

Contributing :inbox_tray:

Feedback and contributions are encouraged! After reading our Code of Conduct, use the Bug Report and Feature Request issue templates to discuss any bugs or contributions to Esdi. For more information, please read our Contributing Guide.

Roadmap :chart_with_upwards_trend:

  • [x] Release v1.0.0
  • [x] Publish npm package
  • [x] Enhance GitHub repository
  • [x] Set up JSDoc on GitHub Pages
  • [x] Configure community Discord server
  • [x] Implement global Hooks
  • [x] Add github-redeploy global Hook
  • [x] Release v1.1.0
  • [x] Implement channel Hooks and hook Command
  • [x] Add ko-fi channel Hook
  • [x] Write Hook tutorials
  • [x] Release v1.2.0
  • [x] Implement interval Events and event Command
  • [x] Add prefix Command and improve prefix customization
  • [x] Add process-monitor global interval Event and status Command
  • [x] Release v1.3.0
  • [ ] Add stat-cat guild interval Event
  • [ ] Add check-reddit and check-rss channel interval Events
  • [ ] Write Event tutorials
  • [ ] Add auto-publish channel interval Event
  • [ ] Add victory-garden interval Event and vg Command
  • [ ] Add support, donate, and invite Commands
  • [ ] Require Command aliases to be unique
  • [ ] Expand Command cooldowns
  • [ ] Expand Event intervals
  • [ ] Expand Command permissions
  • [ ] Add kudos and me Commands
  • [ ] Add more server management functionality