Equisoft's TSLint configuration
This project hosts Equisoft's TSLint configuration. It is versatile enough to be used with NodeJS or Web projects.
For react, you should instead look at @equisoft/tslint-config-react which comes with additional validations.
Versioning
The versioning of this project respects semver. That means your project's package.json can caret (^
) import it.
Installation
Install the library in your project:
yarn add --dev @equisoft/tslint-config
Then create a tslint.json file that uses Equisoft's configuration:
{
"extends": ["@equisoft/tslint-config"]
}
Finally create a script in your package.json to easily run TSLint:
{
"scripts": {
"tslint": "tslint -p tsconfig.json 'src/**/*.ts'",
"tslint:ci": "yarn tslint --format junit -o build/tests/tslint/junit.xml"
}
}
Now you can use yarn tslint
to validate the code style of your TypeScript files!
TypeScript compiler checks
This repository additionally exports a tsconfig.standards.json
file that you should extend in your tsconfig.json configuration:
{
"extends": "@equisoft/typescript-config/tsconfig.standards.json"
}
Continuous Integration
We strongly suggest that you enforce code style checks on your CI. For example, on CircleCI you can add a configuration similar to this one to your .circleci/config.yml:
orbs:
eq: equisoft/build-tools@latest
jobs:
tslint:
executor: node
steps:
- eq/with-yarn-cache
- run:
name: TSLint
command: yarn tslint:ci
- store_test_results:
path: build/tests
Migrating an existing codebase
TSLint supports exclusion of globs in tsconfig.json. One way to gradually migrate a legacy code base to this configuration is to exclude all source files and add conforming files one at a time. To achieve this, add this key to your tsconfig.json:
{
"linterOptions": {
"ecxlude": [
"src/**/*.ts",
"!src/contacts/**/*.ts"
]
}
}
Note how an entry prefixed by !
is added to re-include some source files.