DEV Community

Tuhin Bar
Tuhin Bar

Posted on

Making TypeSafe APIs are easy now!

Setting up a TypeScript Express API project from scratch can be time-consuming. From creating the right directory structure to installing essential dependencies, every step requires careful attention to ensure everything is configured correctly. With Snugger CLI, you can generate a fully configured, type-safe Express API project with a single command, allowing you to focus more on building and less on setup.

This blog will introduce Snugger CLI, a tool designed to automate and simplify the setup of a TypeScript-based Express API project. We'll explore the problems developers face when manually setting up such projects and how Snugger CLI addresses them by streamlining the entire process.

The Problem

Setting up a TypeScript-based Express API project requires multiple steps, especially if you’re aiming for a fully functional, type-safe environment. Here’s what a typical setup might look like:

  • Initialize TypeScript and NPM: Run tsc --init and npm init -y to create basic tsconfig.json and package.json files.

  • Install Core Dependencies: Manually install dependencies like express, mongodb, dotenv, cors, and type definitions for each of them, like @types/express, @types/cors, etc.

  • Directory and File Structure: Create the essential folder structure with directories for controllers, routes, and models. Each of these requires additional files to get started with a functional API.

  • Scripts and Configurations: Add development and build scripts to package.json and configure tsconfig.json to be compatible with the project structure.

  • Manual Adjustments and Typings: Ensure all type safety by configuring type declarations for every dependency and checking that everything is compatible.

For new or even experienced developers, this setup can take significant time and is prone to errors. Missing a single configuration step or installing the wrong dependency version can lead to runtime errors and other issues.

The Solution: Snugger CLI

Snugger CLI eliminates the tedious setup process and generates a ready-to-use, type-safe Express API project. Here’s what Snugger CLI does to make your development workflow easier:

  1. Automated Project Setup: With a single command, Snugger CLI initializes both TypeScript and NPM, so you don’t have to run tsc --init and npm init separately.

  2. Core Dependencies Included: It installs all essential packages, including express, mongodb, dotenv, and cors, along with their TypeScript definitions. This saves you the hassle of looking up and installing each one individually.

  3. Pre-Configured Project Structure: Snugger CLI generates a complete directory structure for you, with folders for controllers, routes, and models, each populated with starter files. This structure makes it easier to start coding without worrying about setting up files manually.

  4. Type-Safe Configurations: The tsconfig.json is optimized for backend development, ensuring compatibility with Express and other dependencies. It also adds dev and build scripts to package.json, making it simple to run or build your project without additional configuration.

  5. Manual Installation Option: Snugger CLI allows you to choose whether to install dependencies automatically or manually. This flexibility is ideal for those who might want to add specific packages during the setup.

With Snugger CLI, all you need to do is specify your project name, and within seconds, you have a fully configured, type-safe Express API project ready to go. This streamlined setup enables you to focus on development rather than configuration, making it a must-have for anyone looking to start a new TypeScript API project.

Setting up a new TypeScript-based API project no longer needs to be a time-consuming task. With Snugger CLI, you can generate a type-safe Express API project with essential dependencies and a clean directory structure in one go. By automating the repetitive steps, Snugger CLI enables you to save time and jump straight into coding.

If this tool has helped simplify your project setup, consider giving the repository a ⭐️ on GitHub. Your support encourages the development of more tools like this and helps make setup easier for others as well!

Check out here for installation and usage --> Snugger

Github --> Snugger

Top comments (0)