Skip to content

Latest commit

 

History

History
executable file
·
147 lines (102 loc) · 3.46 KB

README.md

File metadata and controls

executable file
·
147 lines (102 loc) · 3.46 KB

snugger logo

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.


⚙️ Installation

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

⚡Usage

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

🔷 Example

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"
  }
}

👥 Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on how to contribute to this project.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.