@livechat/eslint-plugin

1.2.1 • Public • Published

Liniting rules plugin for TypeScript ESLint by LiveChat

A package of linting rules used in TypeScript ESLint.

Quick-start

Installation

$ npm i --save-dev @livechat/eslint-plugin

Usage example

{
  "plugins": ["@livechat"],
  "rules": {
    "@livechat/no-declare": "error"
  }
}

Linting rules list

Name Description
@livechat/no-declare Forbids using 'declare' keyword

no-declare

Using 'declare' keyword may be forbidden for all or selected identifiers. You can use it for example to force another methods of declaring global variables, e.g. using 'import' forms.

Options

type Options = {
  onlyIdentifiers?: string[];
  excludeIdentifiers?: string[];
};

const defaultOptions: Options = {
  onlyIdentifiers: [];
  excludeIdentifiers: [];
};

The rule accepts options with the following properties:

  • onlyIdentifiers (optional) - If used, only the provided identifiers will be reported. All other identifiers declared with declare keyword will be ignored.
  • excludeIdentifiers (optional) - If used, all identifiers will be reported except those provided in the array. If onlyIdentifiers is used, this option is ignored.

default options

Don't use 'declare' keyword.

❌ Incorrect

declare const someConst: any;
declare const window: { location };
declare const x, y, z: number;

✅ Correct

import someConst from 'some-lib';
import { window } from 'utils/global-declarations';
const { x, y, z } = window;

onlyIdentifiers

Don't use 'declare' keyword for the provided identifiers.

{
  "@livechat/no-declare": [ "error", { "onlyIdentifiers": [ "window" ] } ]
}

❌ Incorrect

declare const window: any;
declare const window: { location };

✅ Correct

import { window } from 'utils/global-declarations';
declare const someConst: any;
declare const x, y, z: number;

excludeIdentifiers

Don't use 'declare' keyword except for the provided identifiers. If onlyIdentifiers is used, this option is ignored.

{
  "@livechat/no-declare": [ "error", { "excludeIdentifiers": [ "someConst" ] } ]
}

❌ Incorrect

declare const window: any;
declare const x, y, z: number;

✅ Correct

import { window } from 'utils/global-declarations';
declare const someConst: any;

Package Sidebar

Install

npm i @livechat/eslint-plugin

Weekly Downloads

28

Version

1.2.1

License

MIT

Unpacked Size

8.26 kB

Total Files

5

Last publish

Collaborators

  • lukaszjeziorski
  • pandalajka
  • gutmmm
  • yrobag
  • hubert-wyszynski
  • michalpaszczakowski
  • szotp_lc
  • mrateo
  • l.sajdak
  • otkach-text
  • mszpyruk
  • halinasyposz
  • mpasiewicz
  • tadekrzewuski
  • mwarcholinski
  • naszos
  • w.fabjanczuk
  • p.zawadzka
  • wojciechdudek
  • pastepi
  • artur-livechat
  • joanna.sikora
  • mborowskalivechat
  • kajahd
  • bstopyra
  • m.teczynski
  • jakubpyzio
  • rkawka
  • bolchowka
  • lukiq
  • f.jaskolski
  • msypko
  • bamboo-livechat
  • olek_livechat
  • s.graczyk.livechat
  • andarist
  • konradk
  • k.zajac
  • lkrolak
  • hstaniszewski
  • chatbot-com
  • jakubsikora
  • norbertprocak
  • walaszczykm
  • klarzynskik
  • ale-kacperczyk
  • sambor
  • macpankiewicz
  • mreszke
  • k-kozak
  • bbartek
  • mdebski
  • shwarcu
  • jfedyczak
  • paulinag
  • dzabrzenski
  • wouga
  • mzielonka
  • alithanar
  • msawickilc
  • jawinski
  • gh-actions-livechat
  • oliwiapolec
  • arturfracala
  • panr
  • vbezpalko