Generate Express TypeScript
This cli tool generates a thin, unopinionated Express application with TypeScript. It's designed to create a project structure, initialize version control, install dependencies, and configure TypeScript, ESLint, Prettier, and Jest for testing.
Features
Sets up an Express server with TypeScript
Configures ESLint with TypeScript support
Adds Prettier for code formatting
Sets up Jest and Supertest for endpoint testing
Initializes a new Git repository
Configures Husky for pre-commit hooks
Prerequisites
Before running this script, make sure you have the following installed:
- Node.js (v16 or higher)
- yarn (default package manager)
- git
Installation
Install the package globally using npm:
npm install -g generate-express-ts
Or using Yarn:
yarn global add generate-express-ts
Usage
After installing the package globally, you can set up a new Express TypeScript application by running:
generate-express-ts <project-name>
Replace <project-name> with your desired project directory name. If you don't specify a name, it defaults to my-express-ts-app.
The script will create a new directory with the given project name (or the default name) and set up the project structure and configurations within that directory.
What's Included
The script will create the following files and directories:
.eslintrc.yml: ESLint configuration file.prettierrc.yml: Prettier configuration file.gitignore: Basic.gitignorefile for a Node.js projectapp.ts: Entry point for the Express applicationapp.spec.ts: Sample test file using Jest and Supertesttsconfig.json: TypeScript configuration file.lintstagedrc: Configuration for lint-stagedpackage.json: Node.js package manifest with scripts for common taskssrc/: Directory for source codesrc/api/: Directory for API endpointssrc/api/health/: Health check endpoint, accessible at/api/health
Scripts
The generated package.json includes the following scripts:
start: Runs the Express server usingts-nodedev: Runs the Express server usingnodemonbuild: Compiles TypeScript files to JavaScript in thedistdirectorytest: Runs tests using Jestserve: Runs the Express server usingnode(requiresbuildto be run first)
License
Distributed under the MIT License. See LICENSE for more information.
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.
Contact
Rafay Choudhury - x: @rafay_io - website: rafay.io