@adbros/eslint-plugin v1.0.4
ESLint
Kompletní dokumentace ESLint pravidel zde: https://eslint.org/docs/rules/
Naše pravidla ve zkratce
Possible Errors
for-direction: error
Prevence nekonečných loopů vefor.getter-return: error
Požadujereturnvgetfunkcích.no-compare-neg-zero: error
Zakázáno porovnání s-0.no-cond-assign: error
Uvnitř podmínky je zakázáno přiřadit proměnné hodnotu pomocí=.no-console: warn
Použitíconsolehodí varování.no-constant-condition: error
V podmínkách je zakázáno použití samotné konstanty, např.if (false) { ... }.no-control-regex: error
Zákaz neviditelných znaků v regulárních výrazech.no-debugger: error
Zákaz použitídebugger.no-dupe-args: error
Ve funkci jsou zakázány stejně pojmenované argumenty.no-dupe-keys: error
V objektu jsou zakázány stejně pojmenované vlastnosti.no-duplicate-case: error
Veswitchjsou zakázány stejně pojmenovanécase.no-empty: error
Jsou zakázány prázdné bloky{ }.no-empty-character-class: error
V regulárních výrazech jsou zakázány prázdné[].no-ex-assign: error
Vcatchje zakázáno přepsat hodnotu exception.no-extra-boolean-cast: error
V podmínkách je zakázáno zbytečně konvertovat proměnnou naboolean.no-extra-semi: error
Podchytí středníky navíc.no-func-assign: error
Zákaz přepsání funkce jinou proměnnou.no-inner-declarations: error
Zákaz deklarace funkce uvnitř vnořených bloků.no-invalid-regexp: error
Podchytí nevalidní regulární výrazy.no-irregular-whitespace: error
Povoleny pouze obyčejné mezery.no-obj-calls: error
Zákaz voláníMath,JSONaReflectjako funkce.no-regex-spaces: error
V regulárním výrazu je zakázáno používat několik po sobě jdoucích mezer.no-sparse-arrays: error
Žádné pole s prázdnými sloty, např.[,,].no-unexpected-multiline: error
Podchytí několikařádkové výrazy, které mají být pravděpodobně pouze na jednom řádku.no-unreachable: error
Podchytí kód, který není dosažitelný, např. zareturn.no-unsafe-finally: error
Ujištění, žefinallybude fungovat jak je očekáváno.no-unsafe-negation: error
Zákaz negace proměnné předinainstanceof.use-isnan: error
Vynucuje použitíisNaN()namísto porovnání sNaN.valid-typeof: error
Podchytí překlepy v typu při porovnávání pomocítypeof.
Best Practices
curly: "error", "all"
Vyžaduje složené závorky{}u blokůif,else,fora podobně.dot-notation: warn
Varuje při použití hranatých závorekfoo['bar']místo tečkové konvencefoo.bar.guard-for-in: error
Vyžaduje podmínkuif ({}.hasOwnProperty(...))vefor inloopu.no-alert: warn
Varuje při použitíalert.no-caller: warn
Varuje při použitíarguments.calleraarguments.callee.no-empty-function: error
Zakazuje prázdné funkce.no-empty-pattern: error
Podchytí prázdný "destructuring pattern" při deklaraci proměnné, např.var {a: []} = foo;.no-eq-null: error
Při porovnávání snullse vyžaduje striktní porovnání===,!==.no-eval: error
Zakazuje použitíeval.no-extra-bind: error
Podchytí použitíbindkdyž není potřeba.no-fallthrough: error
Veswitch casevždy vyžadujebreak. Při použití komentáře// falls throughtoto neplatí.no-floating-decimal: error
U desetinných čísel nedovoluje začít tečkou, vyžaduje např.-0.7místo-.7.no-global-assign: error
Zakazuje přepsat hodnotu globálních proměnných jako jewindow,Objecta podobně.no-implicit-coercion: error
Zakazuje nečitelné přetypování proměnné, např.var a = !!foo;.no-implicit-globals: error
Proměnné deklarované v "global scope" musí být deklarovány jako vlastnostiwindow.no-implied-eval: error
Zakazuje evaluaci kódu ve funkcíchsetTimeout(),setInterval()aexecScript().no-iterator: error
Zakazuje použití__iterator__.no-lone-blocks: error
Zakazuje samostatné bloky{ ... }, které nemají žádný význam.no-loop-func: warn
Varuje před deklarací funkcí uvnitřforawhile.no-multi-spaces: error
Podchytí několik mezer za sebou (pokud nejsou použity k odsazení řádku).no-new-func: error
Zakazuje vytváření funkce pomocíFunction().no-new-wrappers: error
Zakazuje použitínew String(),new Number()anew Boolean().no-octal: error
Zakazuje čísla začínající nulou, např.071.no-proto: error
Zakazuje použití__proto__.no-redeclare: "warn", { "builtinGlobals": true }
Varuje při opětovné deklaraci již vytvořené proměnné, včetně globálních proměnných.no-return-assign: "error", "always"
Zakazuje přiřazení hodnoty do proměnné vreturn, např.return foo = a + b;.no-script-url: error
Zakazuje URL začínajícíjavascript:.no-self-assign: error
Zakazuje přiřazení proměnné sama k sobě, např.foo = foo.no-self-compare: error
Zakazuje porovnání proměnné sama k sobě, např.if (foo === foo).no-sequences: error
Zakazuje použití čárky, např.a = b += 5, a + b;. Toto neplatí pokud je výraz vefor, nebo obalený v závorkách.no-unmodified-loop-condition: error
Zakazuje loopy s neměnnou podmínkou, např.while (foo) { console.log(foo); }.no-unused-labels: error
Zakazuje labels, které nejsou v kódu využité, např.A: while (i < 5) { i++; }.no-useless-call: error
Podchytí zbytečné volání metod.call()a.apply()v případě, že zavolání samotné funkce docílí toho samého.no-useless-catch: error
Podchytí zbytečné použitícatch.no-useless-concat: error
Zakazuje zbytečné spojení stringů, např.var foo = 'a' + 'b';.no-void: error
Zakazuje použitívoid.no-with: error
Zakazuje použitíwith.wrap-iife: "error", "inside"
Funkce, které se mají vykonat okamžitě, musí být obaleny závorkami, např.(function () { ... })().yoda: error
Při porovnávání zakazuje na první místo dát doslovnou hodnotu, např.if ('red' == color).
Variables
no-delete-var: error
Zakazuje použitídeletena proměnnou.no-label-var: error
Zakazuje stejné pojmenování label a proměnné.no-shadow: warn
Hodí varování když se lokální proměnná pojmenuje stejně jako proměnná v "outer scope".no-shadow-restricted-names: error
Zakazuje přepsání defaultních proměnných jako jeNaN,undefineda podobně.no-undef: error
Zakazuje použití proměnných, které nejsou výslovně deklarovány. Neplatí pro proměnné uvedené vglobalsv konfiguraci ESLintu.no-undef-init: error
Zakazuje zbytečnou inicializaci proměnné jakoundefined.no-unused-vars: warn
Podchytí vytvořené, ale dále již nepoužité proměnné a funkce a vyhodí varování.
Stylistic Issues
array-bracket-newline: "error", "consistent"
Vynucuje konzistentní použití přední[a zadní]hranaté závorky. Buď se nachází na stejném řádku jako jejich obsah, nebo na novém řádku.array-bracket-spacing: "error", "always"
Vynucuje použití mezery uvnitř hranatých závorek, např.[ foo, bar ].array-element-newline: "error", "consistent"
Vynucuje konzistentní deklaraci elementů uvnitř pole[]. Buď jsou všechny na jednom řádku, nebo je každý odsazen na nový řádek.block-spacing: "error", "always"
Vynucuje použití mezery uvnitř složených závorek, např.{ foo = 10; }.brace-style: "error", "stroustrup", { "allowSingleLine": true }
Vyžaduje, aby byly blokyif { ... },else { ... }a podobně vždy na novém řádku. Povoluje jednořádkové bloky.camelcase: "error", { "properties": "always" }
Vyžaduje použití camelCase konvence při pojmenování proměnných.comma-dangle: "error", "always-multiline"
Vyžaduje čárku za posledním elementem v objektu a poli.comma-spacing: "error", { "before": false, "after": true }
Vyžaduje mezeru za čárkou a zakazuje mezeru před čárkou, např.[ 1, 2, 3 ].comma-style: "error", "last"
Při několikařádkové deklaraci vyžaduje umístění čárky na konci řádku.eol-last: "error", "never"
Zakazuje prázdný řádek na konci souboru.func-call-spacing: "error", "never"
Při volání funkce zakazuje mezeru mezi jménem funkce a závorkami, např.doStuff().func-name-matching: "error", "always"
Vyžaduje, aby se funkce jmenovala stejně jako proměnná, do které je přiřazena, např.var foo = function foo () { ... }.func-paren-newline: "error", "never"
Zakazuje nový řádek v argumentech funkce.indent: "error", 4
Nastavuje odsazení jako 4 mezery.key-spacing: "error", { "afterColon": true }
Vyžaduje mezeru za dvojtečkou a zakazuje mezeru před dvojtečkou, např.{ foo: 1, bar: 2 }.keyword-spacing: "error", { "before": true, "after": true }
Vyžaduje mezeru okolo klíčových slov jakocase,delete,if,functionapod.linebreak-style: "warn", "unix"
Varuje pokud nejsou nové řádky kódovány unixovou konvencí\n.lines-around-comment: "error", { "beforeBlockComment": true, "afterBlockComment": true }
Vyžaduje prázdné řádky kolem blokových komentářů/* ... */.lines-between-class-members: "error", "always"
Vyžaduje prázdné řádky mezi funkcemi ve třídě.max-statements-per-line: "error", { "max": 3 }
Nastavuje maximální počet příkazů na jednom řádku na 3.multiline-ternary: "error", "never"
Zakazuje několikařádkové ternární výrazy.new-cap: "error", { "newIsCap": true }
Vyžaduje, aby jména konstruktorů začínala velkým písmenem, např.var friend = new Person();.new-parens: error
Zakazuje použití konstruktoru bez závorek, např.var friend = new Person;.no-bitwise: error
Zakazuje bitwise operátory, např.var x = y >> z;.no-lonely-if: error
Místoelse { if () { ... } }vyžadujeelse if () { ... }.no-mixed-operators: error
Při mixování&&a||vyžaduje použití závorek().no-mixed-spaces-and-tabs: error
Při odsazení zakazuje mixování tabů a mezer.no-nested-ternary: error
Zakazuje skládat ternární výrazy do sebe.no-trailing-spaces: error
Zakazuje mezery na konci řádku.no-unneeded-ternary: error
Zakazuje použití zbytečných ternárních operátorů, např.(foo === 1 ? true : false).no-whitespace-before-property: error
Zakazuje mezeru mezi objektem a vlastností, např.foo. bar.nonblock-statement-body-position: "error", "beside"
Zakazuje nový řádek pokud není kód obalený složenými závorkami{}.object-curly-newline: "error", { "consistent": true }
Vyžaduje konzistentní použití přední{a zadní}složené závorky. Buď se nachází na stejném řádku jako jejich obsah, nebo na novém řádku.object-curly-spacing: "error", "always"
Vyžaduje použití mezery uvnitř složených závorek, např.{ foo, bar }.object-property-newline: "error", { "allowAllPropertiesOnSameLine": true }
Vyžaduje konzistentní deklaraci vlastností uvnitř objektu{}. Buď jsou všechny na jednom řádku, nebo je každá odsazena na nový řádek.operator-linebreak: "error", "after"
Při několikařádkové operaci vyžaduje umístění operátorů na konci řádku, např.var foo = bar +.quote-props: "error", "as-needed"
Vlastnosti objektu vyžaduje bez uvozovek, např.{ foo: 1, bar: 2}. Povoluje je pouze u vlastností, kde jsou uvozovky potřeba, např.{ 'foo-foo': 1, '2bar': 2}.quotes: "error", "single"
Vyžaduje používání jednoduchých místo dvojitých uvozovek, např.var foo = 'bar';.semi: "error", "always"
Vyžaduje používání středníků na konci každého příkazu, např.return { foo: 1 };.semi-spacing: "error", { "before": false, "after": true }
Vyžaduje mezeru za středníkem a zakazuje mezeru před středníkem, např.var foo; var bar;.semi-style: "error", "last"
Vyžaduje umístění středníku na konci řádku.space-before-blocks: "error", "always"
Vyžaduje mezeru před bloky kódu{ ... }.space-before-function-paren: "error", "always"
Vyžaduje mezeru před závorkami funkce, např.function foo () {}.space-in-parens: "error", "never"
Zakazuje mezeru v závorkách funkce, např.foo( 'bar' );.space-infix-ops: error
Vyžaduje mezeru okolo operátorů+,%a podobně, např.var sum = 1 + 2;.space-unary-ops: "error", { "words": true, "nonwords": false }
Vyžaduje mezeru okolo klíčových slov jakonew,delete,typeofa podobně.spaced-comment: "error", "always"
Vyžaduje mezeru na začátku komentáře, např.// Comment.switch-colon-spacing: "error", { "after": true, "before": false }
Vyžaduje mezeru za dvojtečkou a zakazuje mezeru před dvojtečkou uvnitřswitch, např.case 'one': foo = 1;.template-tag-spacing: "error", "always"
Vyžaduje mezeru mezi funkcí a "template literal", např.var hello = func `Hello world`;.
ECMAScript 6
arrow-spacing: error
Vyžaduje mezery kolem=>v "arrow functions", např.(foo) => { return foo + 1; }.constructor-super: error
Podchytí runtime errory při volánísuper().generator-star-spacing: error
U "generator functions" zakazuje mezeru za hvězdičkou a vyžaduje mezeru před hvězdičkoufunction *generator () {}.no-class-assign: error
Zakazuje přepsání třídy, např.class A { }; A = 0;.no-confusing-arrow: error
Zakazuje použití "arrow functions" v případech, kde se dají zaměnit za porovnání, např.var x = a => 1 ? 2 : 3;.no-const-assign: error
Zakazuje přepsání proměnných definovaných pomocíconst.no-dupe-class-members: error
Zakazuje stejně pojmenované metody třídy.no-new-symbol: error
Zakazujenewpři volánínew Symbol( ... ).no-this-before-super: error
Zakazuje voláníthisasuperpředtím, než se zavolásuper().no-useless-computed-key: error
Zakazuje zbytečné "computed keys", např.var foo = {['a']: 'b'};.symbol-description: error
Při použitíSymbolvyžaduje popis.var foo = Symbol('some description');.template-curly-spacing: "error", "always"
Uvnitř proměnných${}v "template string" zakazuje mezery, např.let hello = `Hello, ${person.name}!`;.yield-star-spacing: "error", "both"
Vyžaduje mezery okoloyield, např.function *generator () { yield * other(); }.