Skip to content
/ node.ts Public

A Node CLI for generating Node.js API using Typescript and Express

License

Notifications You must be signed in to change notification settings

mmwny/node.ts

Repository files navigation

alt-text

A Node CLI for generating Node.js API using Typescript and Express.

This project was created as practice for creating Node CLIs, working with Node/Typescript, as well as Promises and Async/await.

📦 Getting Started

At this stage Node.ts is not meant to be used as a production development tool, but if you find it useful for your projects I would love to hear about it, If you feel like contributing to the project, by all means fork the repo and make a pull request with any enhancements or bug fixes, I'm sure there are plenty.

🔌 Installing

Node.ts is available as a npm package. To install globally run:

npm install -g node.ts

That's it! If globally installed, Node.ts will create your new project in the current directory of your terminal.

📁 File Structure

The structure of the project is loosely based off of Microsoft's Typscript + Node starter project structure. Below is the output of creating a new Node.ts project:

Name Description
dist Contains the distributable (or output) from your TypeScript build. This is the code you ship
node_modules Contains all your npm dependencies
src Contains your source code that will be compiled to the dist dir
src/config Passport authentication strategies and login middleware. Add other complex config code here
src/controllers Controllers define functions that respond to various http requests
src/models Models define Mongoose schemas that will be used in storing and retrieving data from MongoDB
src/public Static assets that will be used client side
src/types Holds .d.ts files not found on DefinitelyTyped.
src/app.ts Handler for your routes/controllers
src/server.ts Entry point to your express app
__tests__ Contains your tests. Separate from source because there is a different build process.
.env API keys, tokens, passwords, database URI. Clone this, but don't check it in to public repos.
.gitignore Gitignore file, containing dist, node_modules, and env by default
jest.config.js Used to configure Jest running tests written in TypeScript
package.json File that contains npm dependencies.
staticAssets.ts Build script that copies images, fonts, and JS libs to the dist folder
tsconfig.json Config settings for compiling server code written in TypeScript
tslint.json Config settings for TSLint code style checking

🔨 Commands

Create a new Node.ts project:
node.ts new/n <projectName>

You will be asked a few simple questions, after which, the project will be created in a directory of the same name, a tsconfig.json, package.json, package-lock.json, jest.config.js, and tslint.json will be built. Git will be initiaized locally and a initial commit will be completed with your new project structure. Afterwards the dependencies will be downloaded.


📋 v0.2.0 and Beyond

  • Fixing the many bugs that will arise...
  • Add command to create new models/controllers through the CLI
  • Unit testing
  • More boilerplate files in new projects, to speed up development
  • CLI Option to create Node.ts CLI application rather than API Server

For any other suggestions, or requests, either post an issue, or feel free to add yourself!

🔒 License

This project is licensed under the MIT License.

About

A Node CLI for generating Node.js API using Typescript and Express

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published