# Jeibo workflow

[![Build Status](https://travis-ci.org/jeibo/workflow.svg?branch=master)](https://travis-ci.org/jeibo/workflow)
[![CircleCI](https://circleci.com/gh/jeibo/workflow/tree/master.svg?style=svg)](https://circleci.com/gh/jeibo/workflow/tree/master)
[![Coverage Status](https://coveralls.io/repos/github/jeibo/workflow/badge.svg?branch=master)](https://coveralls.io/github/jeibo/workflow?branch=master)
[![npm version](https://badge.fury.io/js/sikky.svg)](https://badge.fury.io/js/jeibo_workflow)
[![npm downloads](https://img.shields.io/npm/dm/jeibo_workflow.svg)](https://www.npmjs.org/package/jeibo_workflow)
[![npm](https://img.shields.io/npm/l/express.svg?style=flat-square)](https://github.com/jeibo/jeibo_workflow/blob/master/LICENSE.md)

> Fast, and lightweight TypeScript 2.0 boilerplate that export a single file. Tests in Mocha, Chai & Sinon. TSLint for better code quality.

## Features

- [x] Statically typed build system for working with [Typescript](https://www.typescriptlang.org/) 2.0 Pre
- [x] Intelligent code editing with [VSCode](https://code.visualstudio.com/)
- [x] Allow dead code elimination
- [x] Easy debugging
- [x] [Rollup](http://rollupjs.org/) for bundling
- [x] [Bublé](https://gitlab.com/Rich-Harris/buble) as the ES2015 compiler
- [x] [Sinon](http://sinonjs.org/) for test doubles
- [x] [Mocha](https://mochajs.org/) & [Chai](http://chaijs.com/) de facto standard

## Workflow

- `build` - transpile TypeScript down to ES5 and builds a bundle both for development and production
- `build:dev`  - transpile TypeScript down to ES5 and builds a bundle for development
- `build:prod` - transpile TypeScript down to ES5 and builds a bundle for production
- `coverage` - shows the coverage report
- `cleanup` - remove the dist, coverage and build folders
- `test` - run all unit tests
- `lint` - validates all source and test files
- `release` - push to Github and release a new version to NPM
- `watch:tests` - run all unit tests and watch files for changes
- `watch:build` - watch your TypeScript files and trigger recompilation on changes
- `update:dependencies` - update npm packages

## Shell scripting

All commands can be run with `sh`. The script files are located inside the `./scripts` folder, and shared between
the `CI` and the `NPM script commands`.

## Continuous integration (CI)

Both `Travis` and `Circle` are supported.

## Coverage reports

The coverage reports are generated with `Istanbul`, and delivered to `coveralls.io`.

Istanbul generate a 100% correct coverage report. See the source and test files and do a comparison.
