create-ts-starter

Production ready starter for typescript node project

Usage no npm install needed!

<script type="module">
  import createTsStarter from 'https://cdn.skypack.dev/create-ts-starter';
</script>

README

node typescript starter

Production ready starter for typescript-node projects

Quick Start

npx create-ts-starter PROJECT_NAME Vscode

Functionalities

  • create ESM and CommonJS modules and publish to npm registry.
  • configured to support top-level-await (look at Caveat section).
  • scan for vulnerabilities via HCL AppScan CodeSweep in vscode IDE.
  • auto tag the git commit at publish time.
  • generate changelog.md file after each publishes.
  • run tests with jest.
  • load environment variables from .env file.
  • load credentials from host operation system's credential manger.
  • ready to run in a docker environment.
  • write logs in .log file in the logs directory with customizable log rotation policy.
  • generate API documentation in docs folder of the root project directory.
  • compile the app to an executable single file.
  • restart the process after modifying ts files.
  • dies at unhandled errors (this is a very good strategy for production - docker will take care of restart the program after exit).
  • type-def for process.env variables.
  • recommends useful vscode extensions.

Notice:

  • If you don't want to open the project folder in VSCode, You can ignore the 'VSCode' parameter.
  • minimap is disabled by default.
  • workbench sidebar is in right side of screen.

Commands

  • npm start to start the development environment
  • npm run compile to compile to single executable file
  • npm run prod to run in production
  • npm run test to run tests
  • npm run test:watch to run tests in watch mode
  • npm run format to format with prettier
  • npm run lint to lint with eslint
  • npm run gen-docs to generate documentations website
  • npm run docker:build to create docker image with data from .env file and version # from package.json
  • docker-compose up to run in docker environment

Powered By (Credit):

TODO:

  • improve error handling best practices
  • docker best practices
  • add entry for other builds (e.g. esm, browser, ...)
  • fix failures when git is not installed on the host system.
  • add templates to based on type of project that user wants to create, generate different projects (esbuild for projects without decorators, tsc compiler, ...)
  • add please wait... in initial of the process

Caveat