zumito-cli
v2.0.5
Published
CLI tool for fast boilerplating a discord bot using zumito-framework
Readme
About The Project
zumito-cli is a robust Command Line Interface (CLI) tool and a companion VS Code extension meticulously crafted to streamline and accelerate the development of Discord bots powered by the Zumito Framework. It aims to abstract away repetitive setup tasks and enforce project conventions, allowing developers to focus on building unique bot functionalities.
By integrating directly into your development workflow, zumito-cli ensures consistency, reduces boilerplate, and enhances productivity, making the creation of scalable and maintainable Zumito bots more efficient than ever.
Key Features
- Rapid Project Scaffolding: Quickly initialize new Zumito bot projects with essential configurations and a standardized folder structure.
- Module & Component Generation: Effortlessly create new modules, commands, services, and other core components, maintaining code consistency and organization.
- Integrated VS Code Experience: Enhance your development flow directly within VS Code with intelligent code actions and automations.
- Automated Service Injection: Eliminate boilerplate code. The VS Code extension provides quick fixes to automatically import and inject available services into your command classes.
Getting Started
This section will guide you through setting up zumito-cli for your development environment.
Prerequisites
Ensure you have the following installed:
- Node.js (16.x or higher) and npm
Installation
To install zumito-cli globally, use npm:
npm install -g zumito-cliAlternatively, you can use npx to execute commands on-the-fly without global installation:
npx zumito-cli <command>Usage
CLI Commands
zumito-cli provides a suite of commands to automate common development tasks:
create project: Initializes a new Zumito bot project.zumito-cli create project(This command will guide you through a series of prompts to configure your project, including project name, Discord bot token, client ID, client secret, bot prefix, and database type.)
create module: Generates a new module for your bot.zumito-cli create module(You will be prompted for the module name and type.)
create embedBuilder: Creates an embed builder service. If the service already exists you can provide--methodNameto add a new method.zumito-cli create embedBuilder(You will be prompted for the module name and service name.)
create actionRowBuilder: Creates an action row builder service. If the service already exists you can provide--methodNameto add a new method.zumito-cli create actionRowBuilder(You will be prompted for the module name and service name.)
VS Code Extension
The zumito-cli VS Code extension is designed to seamlessly integrate into your development workflow:
Code Actions for Service Injection:
When working in a command file (e.g., src/modules/your-module/commands/your-command.ts) within a Zumito bot project, place your cursor on the command class definition line. Press Ctrl+. (or click the lightbulb icon) to reveal available code actions. You will find options to automatically import and inject available services into your command's execute method or constructor.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the ISC License. See LICENSE for more information.
Support
Any questions or suggestions? Come to our Discord server and chat with us!
Acknowledgments
We would like to thank the following projects for their inspiration and foundational support:
