Skip to content

Gvozd/eslint-plugin-consistent-subscribe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eslint-plugin-consistent-subscribe

Build Status npm version License Downloads

dependencies devDependencies peerDependencies

Downloads graph

ESLint rule, checking pairing subscriptions

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-consistent-subscribe:

$ npm install eslint-plugin-consistent-subscribe --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-consistent-subscribe globally.

Usage

Add consistent-subscribe to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
    "plugins": [
        "consistent-subscribe"
    ]
}

Then configure the rules you want to use under the rules section.

{
    "rules": {
        "consistent-subscribe/consistent-subscribe": 2
    }
}

Supported Rules

consistent-subscribe

Rule Details

This rule aims to...
Examples of incorrect code for this rule:

$('body').on('click', onClick);
// subscribe, without unsubscribe

Examples of correct code for this rule:

$('body').on('click', onClick);
setTimeout(() => {
  $('body').off('click', onClick);
}, 1000);

Options

This rule takes a list of objects, where each object describes a separate API subscription.
Default value is:

/* eslint-enable consistent-subscribe/consistent-subscribe: [2, {open: 'addEventListener', close: 'removeEventListener'}, {open: 'on',close: 'off'}, {open: 'subscribe',close: 'unsubscribe'}] */
  • open name of subscribe method, i.e. on/subscribe/addEventListener

  • close name of unsubscribe method, i.e. off/unsubscribe/removeEventListener

  • contextEquality. default true - need check, that listened object strict equal The following patterns are not warnings:

    /* eslint-enable consistent-subscribe/consistent-subscribe: [2, {open: 'on',close: 'off', contextEquality: false}] */
    $('body').on('click', onClick);
    $(document.body).off('click', onClick);
  • openArgumentsEquality/closeArgumentsEquality. default true - arguments should strict equal
    If need check not all arguments, this is array of indexed arguments for check\

    The following patterns are considered warnings:

    /* eslint-enable consistent-subscribe/consistent-subscribe: [2, {open: 'on',close: 'off', openArgumentsEquality: true, closeArgumentsEquality: true}] */
    $('body').on('click', onClick);
    $('body').off('click');//missing handler argument

    The following patterns are not warnings:

    /* eslint-enable consistent-subscribe/consistent-subscribe: [2, {open: 'on',close: 'off', openArgumentsEquality: [0], closeArgumentsEquality: [0]}] */
    $('body').on('click', onClick);
    $('body').off('click');//missing handler argument, but it's OK, because checked only first argument

Author

© 2016 Viktor Gvozdev gvozdev.viktor@gmail.com and contributors.

License

Released under the MIT license.

About

ESLint rule, checking pairing subscriptions

Resources

License

Stars

Watchers

Forks

Packages