UNPKG

eslint-config-interfaced

Version:

ESLint config for the approaches adopted by Interfaced company

372 lines (299 loc) 10.3 kB
# Change log ## 2.1.1 (release date: 25.06.2020) * Fix syntax errors in 2.1.0 configs ## 2.1.0 (release date: 25.06.2020) * Update to ESLint 7 (`7.3.1`) * Added new rules: - `default-case-last` - `no-loss-of-precision` - `no-promise-executor-return` - `no-restricted-exports` - `no-unreachable-loop` - `no-useless-backreference` ## 2.0.0 (release date: 27.12.2019) * Enabled `jsdoc/no-undefined-types` * Added new rules: - `node/no-exports-assign` - `default-param-last` - `grouped-accessor-pairs` - `no-constructor-return` - `prefer-regex-literals` - `no-import-assign` - `no-dupe-else-if` - `no-setter-return` - `function-call-argument-newline` - `prefer-exponentiation-operator` ## 2.0.0-beta.3 (release date: 09.09.2019) * Disabled `no-unassigned-import` * Re-enabled `jsdoc/valid-types` * Disabled `require-atomic-updates` * Configured `jsdoc/check-tag-names` with proprietary GCC tags * Configured `prefer-promise-reject-errors` with `allowEmptyReject`: `true` ## 2.0.0-beta.2 (release date: 09.08.2019) * Removed 'jsdoc/no-undefined-types' rule temporally * Removed 'jsdoc/valid-types' rule temporally ## 2.0.0-beta.1 (release date: 24.06.2019) * `eslint@6.0.0` * `eslint-plugin-import@2.17.3` * `eslint-plugin-node@9.1.0` * Added `eslint-plugin-jsdoc` and most of its rules * Removed `eslint-plugin-goog` * Removed `zombiebox` override and `goog` config * Dropped support for node 6 * Added rules: - `prefer-object-spread` - `no-extend-native` - `no-extra-bind` - `no-invalid-this` - `no-iterator` - `no-multi-str` - `no-throw-literal` - `no-useless-catch` - `prefer-promise-reject-errors` - `handle-callback-err` - `no-restricted-modules` (`color`, `fs-promise`, `walk`) - `no-mixed-requires` - `import/no-unused-modules` - `node/prefer-global/text-decoder` - `node/prefer-global/text-encoder` - `node/file-extension-in-import` - `jsdoc/check-alignment` - `jsdoc/check-examples` - `jsdoc/check-param-names` - `jsdoc/check-tag-names` - `jsdoc/implements-on-classes` - `jsdoc/match-description` - `jsdoc/no-undefined-types` - `jsdoc/require-hyphen-before-param-description` - `jsdoc/require-jsdoc` - `jsdoc/require-param` - `jsdoc/require-param-name` - `jsdoc/require-param-type` - `jsdoc/require-returns` - `jsdoc/require-returns-check` - `jsdoc/require-returns-type` - `jsdoc/valid-types` * Removed rules: - `interfaced/camelcase` - `interfaced/require-jsdoc` - `interfaced/valid-jsdoc` - `node/prefer-global/url` ## 1.5.0 (release date: 26.12.2018) * `eslint-plugin-import@2.14` * `eslint-plugin-interfaced@1.6` * Added rules: - `import/no-unresolved` - `import/named` - `import/default` - `import/namespace` - `import/no-restricted-paths` - `import/no-absolute-path` - `import/no-dynamic-require` - `import/no-internal-modules` - `import/no-webpack-loader-syntax` - `import/no-self-import` - `import/no-cycle` - `import/no-useless-path-segments` - `import/no-relative-parent-imports` - `import/export` - `import/no-named-as-default` - `import/no-named-as-default-member` - `import/no-deprecated` - `import/no-extraneous-dependencies` - `import/no-mutable-exports` - `import/unambiguous` - `import/no-commonjs` - `import/no-amd` - `import/no-nodejs-modules` - `import/first` - `import/exports-last` - `import/no-duplicates` - `import/no-namespace` - `import/extensions` - `import/order` - `import/newline-after-import` - `import/prefer-default-export` - `import/max-dependencies` - `import/no-unassigned-import` - `import/no-named-default` - `import/no-default-export` - `import/no-named-export` - `import/no-anonymous-default-export` - `import/group-exports` - `import/dynamic-import-chunkname` - `interfaced/no-jsdoc-type-multi-spaces` - `interfaced/singular-enum` * Removed rules: - `interfaced/prevent-unused-typedef-vars` - `interfaced/lines-between-statics` - `interfaced/statics-order` * Renamed rules: - `interfaced/no-tabs-in-jsdoc-type` -> `interfaced/no-jsdoc-type-tabs` * ESLint's rules for Node moved to `interfaced/node` [BREAKING] ## 1.4.1 (release date: 19.10.2018) * Tracked `esm.js` file ## 1.4.0 (release date: 19.10.2018) * `eslint-plugin-node@7.0` * `eslint-plugin-interfaced@1.5` * New sub configs: - `interfaced/node` - `interfaced/esm` - `interfaced/externs` - `interfaced/mocha-chai` * Added rules: - `node/no-extraneous-import` - `node/no-extraneous-require` - `node/no-missing-import` - `node/no-missing-require` - `node/no-missing-require` - `node/no-unpublished-import` - `node/no-unpublished-require` - `node/no-unsupported-features/es-builtins` - `node/no-unsupported-features/es-syntax` - `node/no-unsupported-features/node-builtins` - `node/process-exit-as-throw` - `node/shebang` - `node/no-deprecated-api` - `node/exports-style` - `node/prefer-global/buffer` - `node/prefer-global/console` - `node/prefer-global/process` - `node/prefer-global/url-search-params` - `node/prefer-global/url` - `interfaced/prevent-unused-jsdoc-types` ## 1.3.0 (release date: 09.10.2018) * `eslint-plugin-interfaced@1.4` * Added rules: - `interfaced/jsdoc-type-indent` ## 1.2.0 (release date: 30.08.2018) * `eslint@5.3` * `eslint-plugin-interfaced@1.2` * Added rules: - `require-unicode-regexp` - `require-atomic-updates` - `no-async-promise-executor` - `no-misleading-character-class` - `interfaced/no-param-reassign` (instead of `no-param-reassign`) * Removed deprecated rules: - `no-catch-shadow` ## 1.1.0 (release date: 30.07.2018) * `eslint-plugin-interfaced@1.1` * `interfaced/jsdoc-type-spacing`: use new options ## 1.0.0 (release date: 03.07.2018) * `eslint@5.0` * `eslint-plugin-interfaced@1.0` * `eslint-plugin-goog@1.0` * `interfaced/valid-jsdoc`: require param type * Added rules: - `max-classes-per-file` - `max-lines-per-function` - `prefer-object-spread` ## 0.7.1 (release date: 25.06.2018) * Tracked `rule.js` file ## 0.7.0 (release date: 25.06.2018) * `eslint@4.19` * `eslint-plugin-interfaced@0.6` * `wrap-iife`: set to "inside" * `prefer-arrow-callback`: disallow unbound "this" * Added rules: - `interfaced/event-const-value` * Turned off rules: - `consistent-return` - `capitalized-comments` - `no-unmodified-loop-condition` * Fixed a critical npm audit report ## 0.6.2 (release date: 22.01.2018) * Prevent base config polluting by zombiebox config ## 0.6.1 (release date: 15.01.2018) * Tracked `zombiebox.js` file ## 0.6.0 (release date: 15.01.2018) * `eslint-plugin-interfaced@0.5` * `no-unused-vars`: don't ignore args * `interfaced/jsdoc-tags-order`: added `@suppress`, `@this` * `goog/no-undeclared-deps`, `goog/no-unused-deps`: set "zb" domain only in zombiebox config [BREAKING] * Added rules: - `interfaced/prefer-shorthand-jsdoc-types` - `interfaced/prevent-unused-typedef-vars` - `interfaced/prevent-unused-meta-params` * Separate config for zombiebox environment * Added zombiebox-specific globals to zombiebox config ## 0.5.0 (release date: 11.12.2017) * `eslint@4.12` * `eslint-plugin-goog@0.4` * `eslint-plugin-interfaced@0.4` * `interfaced/jsdoc-tags-order`: added `@deprecated` * Added rules: - `implicit-arrow-linebreak` - `interfaced/interface-name-prefix` - `interfaced/abstract-class-name-prefix` - `interfaced/no-tabs-in-jsdoc-type` - `interfaced/camelcase` (instead of `camelcase`) - `interfaced/require-jsdoc` (instead of `require-jsdoc`) * Described specifying of `domains` and `knownNamespaces` by shared settings instead of rules redefining ## 0.4.0 (release date: 21.11.2017) * `npm@5` * `eslint-plugin-interfaced@0.3` * `valid-jsdoc`: prefer `@throws` over `@throw` * `interfaced/jsdoc-tags-order`: added `@throws` * Added rules: - `interfaced/capitalized-enum` - `interfaced/capitalized-typedef` - `interfaced/jsdoc-type-spacing` - `interfaced/jsdoc-type-application-dot` - `interfaced/valid-jsdoc` (instead of `valid-jsdoc`) - `interfaced/no-unused-expressions` (instead of `no-unused-expressions`) ## 0.3.0 (release date: 7.11.2017) * `eslint@4.9` * `eslint-plugin-goog@0.3` * `eslint-plugin-interfaced@0.2` * Added rules: - `prefer-promise-reject-errors` - `prefer-destructuring` - `no-buffer-constructor` - `for-direction` - `getter-return` - `no-await-in-loop` - `no-compare-neg-zero` - `array-bracket-newline` - `array-element-newline` - `function-paren-newline` - `lines-between-class-members` - `multiline-comment-style` - `no-multi-assign` - `nonblock-statement-body-position` - `padding-line-between-statements` - `semi-style` - `switch-colon-spacing` - `template-tag-spacing` * Removed deprecated rules: - `lines-around-directive` - `newline-after-var` - `newline-before-return` * Use .yaml for configuration ## 0.2.0 (release date: 8.06.2017) * `eslint-plugin-goog@0.2.0` * `eslint-plugin-interfaced@0.1.0` * `valid-jsdoc`: removed `@virtual` from the blacklist * `no-empty-function`: allow methods (for extending by `interfaced/no-empty-method`) * New rules: - `interfaced/space-in-typecast` - `interfaced/caps-const` - `interfaced/event-const-desc` - `interfaced/no-empty-method` - `interfaced/no-public-underscore` - `interfaced/no-restricted-jsdoc-tags` - `interfaced/newline-between-methods` - `interfaced/newline-between-props` - `interfaced/newline-between-statics` - `interfaced/newline-before-after-class` - `interfaced/methods-order` - `interfaced/props-order` - `interfaced/statics-order` - `interfaced/jsdoc-tags-order` - `goog/no-undeclared-deps` - `goog/no-unused-deps` - `goog/right-order` - `goog/no-duplicates` * Added `goog` and `interfaced` to `plugins` section ## 0.1.0 (release date: 29.03.2017) * Initial release