nest-init-cli
v1.0.0
Published
cli package to initialise your nest app
Downloads
4
Readme
About The Project
Nest-Init is a powerful CLI tool designed to streamline the creation and configuration of new NestJS projects. It simplifies the setup process, allowing you to integrate different databases with ORMs and set up authentication efficiently. Nest-Init equips you with essential tools to launch your next NestJS application with ease.
Features
- Database Configuration
- ORM Integration: Choose between MikroORM, TypeORM, Sequelize, Prisma, and Drizzle with automatic configuration and connection setup.
- ODM Integration: Setup Mongoose for MongoDB with pre-configured models and schemas.
- Authentication Setup
- Implement JWT authentication with pre-configured guards and strategies.
- Add social authentication for services like Google, Facebook and Github.
Built with
- NestJS
- Nest Commander
- Inquirer
- Passport.js
Getting Started
System Requirements
To get started with Nest-Init, ensure you have Node.js and npm installed on your machine.
Using Nest-Init in Your Project
In order to use Nest-Init within your NestJS project, install the package globally using the command:
npm install -g nest-init
Once it is installed, follow the prompts to start configuring your project.
Contributing to Nest-Init
If you're interested in maintaining or developing the package, follow these steps:
Clone the repository:
git clone https://github.com/GDGAlgiers/nest-init.git cd nest-init
Install dependencies:
npm install
Run the project locally:
npm run start
Make your changes and create a pull request:
- Make sure to follow the contribution guidelines in CONTRIBUTION.md
Usage
Once you have configured your project with Nest-Init, you can begin using the CLI within your NestJS project.
Initializing the CLI
In your project directory, execute the command:
nest-init
After initializing the CLI, you will see the following menu options:
1. Configure ORM with Database
2. Setup Authentication Strategies and Services
Choose the option that suits your project needs and follow the prompts to configure your NestJS application accordingly.
List of Commands
Configure ORM with Database
Use the following command to install and configure your chosen ORM with a specific database:
nest-init install-<ORM> -<database>
Below, you'll find detailed commands for each combination of ORM and supported databases.
MikroORM
Configure MikroORM with MySQL, PostgreSQL, or MongoDB.
MySQL
nest-init install-mikroorm -my
or
nest-init install-mikroorm --mysql
PostgreSQL
nest-init install-mikroorm -psql
or
nest-init install-mikroorm --postgresql
MongoDB
bash nest-init install-mikroorm -m
orbash nest-init install-mikroorm --mongodb
TypeORM
Configure TypeORM with MySQL, PostgreSQL, or MongoDB.
MySQL
nest-init install-typeorm -my
or
nest-init install-typeorm --mysql
PostgreSQL
nest-init install-typeorm -psql
or
nest-init install-typeorm --postgresql
MongoDB
bash nest-init install-typeorm -m
orbash nest-init install-typeorm --mongodb
Mongoose
Configure Mongoose with MongoDB.
nest-init install-mongoose -m
or
nest-init install-mongoose --mongodb
Sequelize
Configure Sequelize with MySQL, PostgreSQL, or MongoDB.
MySQL
nest-init install-sequelize -my
or
nest-init install-sequelize --mysql
PostgreSQL
bash nest-init install-sequelize -psql
orbash nest-init install-sequelize --postgresql
Prisma
Configure Prisma with PostgreSQL or MongoDB.
PostgreSQL
nest-init install-prisma -psql
or
nest-init install-prisma --postgresql
MongoDB
bash nest-init install-prisma -m
orbash nest-init install-prisma --mongodb
Drizzle
Configure Drizzle with MySQL, PostgreSQL, or MongoDB.
MySQL
nest-init install-drizzle -my
or
nest-init install-drizzle --mysql
PostgreSQL
nest-init install-drizzle -psql
or
nest-init install-drizzle --postgresql
MongoDB
bash nest-init install-drizzle -m
orbash nest-init install-drizzle --mongodb
Setup Authentication Strategies and Services
Nest-Init provides a guided questionnaire to configure authentication services and strategies for your NestJS project. To begin, run the following command:
nest-init add-auth
This command initiates a series of prompts where you can select the options that best fit your project requirements:
Normal Authentication
- Implement local username/password authentication.
Social Authentication
- Implement authentication using Facebook, Google, and Github OAuth services.
Resetting Password
- Enable a built-in password resetting functionality for your project.
Authentication Strategies
- Nest-Init provides flexible authentication strategies to secure your application based on your project's requirements:
JWT (JSON Web Tokens)
Implement stateless authentication using JWTs, which are compact tokens verified by the server based on contained claims.
Sessions
Supports session-based authentication for managing server-side session states, ideal for applications requiring stateful interactions with clients.
Join our Community
Join us in the GDG Algiers' Community Discord here and feel free to ask any questions you may have.
Contributing
Thank you for considering contributing to the Nest-Init project. We welcome contributions from the community to make this project even better. Please take a moment to review our CONTRIBUTION.md file where the Contribution Guidelines are listed.
License
Distributed under the MIT License. See LICENSE for more information.
Contact
GDG Algiers - @gdg_algiers - [email protected]
Project Link: https://github.com/GDGAlgiers/nest-init