This is a barebones Node.js application written in TypeScript, following best practices. It defines a simple sayHello
function as well as the standard 'hello world' executable. Additionally, it has a test suite and code coverage tooling.
To see all the functionality in action, run the following:
make all
This command will download all dependencies and type definitions, perform linting, compile to JavaScript, and run code coverage.
This project uses the following technologies for build:
- NPM - Node Package Manager, for all your node library and tool needs.
- TSD - TypeScript Definition manager for community-supported definition files of popular libraries and tools.
- Gulp - Streaming build framework that utilizes plugin model to define build targets in JavaScript (or in our case, TypeScript)
- Make - GNU Make tool. You know what this tool is already. We use this to wrap all the other build tools for a consistent interface.
Most of the targets are defined in Gulpfile.ts
. However, targets for cleaning the project and downloading NPM packages and TSD definitions are defined in Makefile
as they are dependencies of Gulp.
Most likely, the Makefile should never need another target defined, all additional build targets should be defined using Gulp.
This project utilizes:
- TSLint - TypeScript Linting tool, used to promote consistency in the code base.
This project uses the following test stack:
- Mocha - Test framework that utilizes interfaces for third-party assertion libraries and reporters.
- Chai - Test assertion library that includes assert, expect, and should syntaxes as well as a plugin model for extending functionality.
- Istanbul - Test code coverage tool that supports unit tests, server side tests, and browser tests. Includes a HTML report generator.
Mocking libraries are critical testing tools. However, this project does not currently include one. This is left as a TODO for the moment.