Snugger is a simple and lightweight library for generating type-safe API project with Express. It is designed to help you quickly build a RESTful API project with TypeScript.
It is named Snugger because it technically means Tightly fit and it is designed to be easy to use and not add unnecessary complexity to your project.
If you do not have Node installed on your device, you are required to install it to run this tool.
You can install Snugger CLI using npm:
npm install -g snugger@latest
Additionally you can use yarn to install Snugger CLI:
yarn add -g snugger@latest
To create a new Snugger project:
snugger create
-| Snugger CLI |-
Snugger v1.0.1 - A CLI for generating type-safe express APIs
Enter project name: [your-project-name]
Would you like to install dependencies? [y/n]
or
To get help and see all the flags:
snugger help
After creating the project run this:
cd <your-project-name>
npm run dev
It will run your Express Typescript App.
Snugger generates the starting files for your project. You can configure your project folder and files according to your requirements.
To set up your project further, refer to the Express Official docs
If you run a command like:
snugger create
-| Snugger CLI |-
Snugger v1.0.1 - A CLI for generating type-safe express APIs
Enter project name: express-typescript-api
Would you like to install dependencies? yes
It will create a new project in a directory named express-typescript-api
with package.json
like this :
{
"name": "express-typescript-api",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --exec ts-node app.ts",
"build": "tsc",
"start": "node dist/app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.21.1",
"mongoose": "^8.7.2"
},
"devDependencies": {
"@types/express": "^4.17.17",
"@types/cors": "^2.8.17",
"@types/node": "^20.6.0",
"ts-node": "^10.9.2",
"typescript": "^5.6.3"
}
}
We welcome contributions! Please see CONTRIBUTING.md for details on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.