A simple way to run TSLint in your Mocha tests without a task runner like Grunt or Gulp.
Inspired by mocha-jshint and mocha-eslint.
You can install mocha-tslint
into your Node.js project as a development dependency with:
npm install --save-dev mocha-tslint
mocha-tslint
requires the consuming module to have mocha
, tslint
and typescript
as dependencies. This way the consuming application can decide which version to
use (currently supported versions are TSLint 4.x, 5.x and Typescript 2.x).
After mocha-tslint is installed, you can use it by creating a test file for
Mocha and requiring mocha-tslint
like so:
var lint = require('mocha-tslint');
This will return a function with the signature:
lint(configFilePath, pathsToLint)
configFilePath
: the path to yourtslint.json
from your project's top level directorypathsToLint
: This can either be a string, an array of strings or it can be left off- If left off, linting will be done from the directory of your
tslint.json
- If you put in a string or an array of strings you can define which folders to lint.
- If left off, linting will be done from the directory of your
So, a full test file to run in Mocha might look like:
var lint = require('mocha-tslint');
var configFilePath = './tslint.json';
lint(configFilePath);
If you only want to lint files placed in src/
and test/
:
var lint = require('mocha-tslint');
var configFilePath = './tslint.json';
var folders = [
'src',
'test'
];
lint(configFilePath, folders);
If you only want to lint all files that are in a folder placed in src/
:
var lint = require('mocha-tslint');
var configFilePath = './tslint.json';
lint(configFilePath, 'src/*'); // src/foo.ts won't be linted, but src/foo/bar.ts will be
This module does not make any decisions about which TSLint rules to run. You need a
tslint.json
file in order for this module to work at all.