super-tslint

1.0.9 • Public • Published

Super tslint

An extension of the tslint library adding the ability to watch files, better handle multiple nested tsconfigs, and more human readable output.

Installation

install the npm package

> npm i -g super-tslint

or if you prefer to install it locally

> npm i --save-dev super-tslint
> node ./node_modules/super-tslint/bin/super-tslint  ...

Usage

Flags

        -p, --project [path]    path to tsconfig, lints entire project.
        -q, --quote             a bit of inspiration.
        -h, --help              shows this dialog.
 
        --all                   lints all nested tsconfig.* projects.
        --fix                   auto fixes compatible errors.
        --watch                 watches files for on save and re-runs linter.

Lint a project

> super-tslint --project example/project-a/tsconfig.json

Lint a single file

> super-tslint path/to/file.ts

Lint and auto fix a project

> super-tslint --fix --project example/project-a/tsconfig.json

Lint all nested tsconfigs

this will lint all ts projects nested from the current directory

> super-tslint --all

Lint and watch for changes

> super-tslint --watch --project example/project-a/tsconfig.json

Lint and watch all

> super-tslint --watch --all

Inspire yourself to write better code

> super-tslint --quote

Setting up multiple tsconfigs

For the following example, lets say we have the below project structure

|____projects
|   |__proj-a
|   |  |__file-a.ts
|   |  |__tsconfig.json
|   |
|   |__proj-b
|   |  |__file-b.ts
|   |  |__tsconfig.json
|   |
|   |__tslint.json
|
|__tslint.json

In the root tslint.json, define your general rules for the entire repo. You can also choose to include or exclude certain file globs here.

{
  "extends": "tslint:recommended",
  "rules": {}
}

In the projects/tslint.json, you can extend the root config and make changes to your specific nested files. Tslint will always use the closest tslint.json as it's ruleset.

{
  "extends": "../tslint.json",
  "rules": {
    "member-access": false,
    "no-console": {
      "severity": "warning"
    }
  },
  "linterOptions": {
    "exclude": [
      "**/typings/**"
    ]
  }
}

An example tsconfig.json

{
  "compilerOptions": {
      "alwaysStrict": true,
      "noImplicitAny": true,
      "removeComments": true,
      "preserveConstEnums": true,
      "outFile": "proj-a-bundle.js",
      "sourceMap": true
  },
  "exclude": [
      "node_modules",
      "**/*.spec.ts"
  ]
}

And then to lint all nested projects run

> super-tslint --all

which could produce the following example output

C:/root/projects/proj-a/file-a.ts:10:16
ERROR: 10:16            semicolon                Missing semicolon
WARNING: 14:5            no-console             Calls to 'console.log' are not allowed.
ERROR: 14:17            quotemark                ' should be "

C:/root/projects/proj-b/file-b.ts:10:16
ERROR: 10:16            semicolon                Missing semicolon


TOTAL ERRORS:     3
TOTAL WARNINGS:   1

Exit codes

If any error occurs during linting, process will return exit status 1 (this does not include warnings).

Example output coloring

Package Sidebar

Install

npm i super-tslint

Weekly Downloads

2

Version

1.0.9

License

MIT

Unpacked Size

86.5 kB

Total Files

8

Last publish

Collaborators

  • zane-c