Package detail

@typhonjs-config/eslint-config

typhonjs-config207MIT0.6.3

Provides shared ESLint configs files for TyphonJS projects.

typhonjs, config, eslint

readme

@typhonjs-fvtt/eslint-config-foundry.js

NPM License

Overview

Provides shareable ESLint configs for TyphonJS projects covering standard ESM code formatting including eslint-plugin-jsdoc configuration. The current eslint-plugin-jsdoc dependency version is ^43.

There are browser and Node configurations by year for ESM language level between 2017 and 2022. Additionally, there are rules for jsdoc/no-undefined-types covering all Typescript types not included in eslint-plugin-jsdoc.

Recommended usage

Simply extend your local .eslintrc file as follows:

{
  "extends": [
    "@typhonjs-config/eslint-config/esm/2022/node",
    "@typhonjs-config/eslint-config/esm/2022/no-undefined-types"
  ]
}

For browser oriented projects use @typhonjs-config/eslint-config/esm/2022/browser instead of node. There also is a latest entry that points to the latest year supported; IE @typhonjs-config/eslint-config/esm/latest/node.

Including no-undefined-types is optional and will require the use of import types across the target codebase for locally defined typedefs and all references used across local files.

Roadmap

  • Provide a way to scan the target codebase for typedefs and symbols to automatically generate a definedTypes rule for jsdoc/no-undefined-types allowing local usage without the need for import types when using the no-undefined-types configuration.

changelog

0.6.3

  • Turn off jsdoc/no-defaults which was enabled in ^46.

0.6.2

  • Bump eslint-plugin-jsdoc to ^46.

0.6.1

  • Fix for not including in package new /rules directory.

0.6.0

  • By default "jsdoc/no-undefined-types": "off" is used. A new no-undefined-types config is now available for each year release that enables the no-undefined-types rule along with including Typescript types not included in eslint-plugin-jsdoc.

  • Updated eslint-plugin-jsdoc dependency to ^43.

0.5.0

  • Removed jsdoc/no-undefined-types rule turning it off; must now provide explicit types.
    • To explicitly turn off again add "rules": { "jsdoc/no-undefined-types": "off" } to eslint config.
  • Added public to exceptions in tag-lines rule.
  • Fixed old invalid configuration values in tag-lines.

0.4.0

  • Updated eslint-plugin-jsdoc dependency to 43.0.7.
  • Added hidden to exceptions in tag-lines rule.

0.3.6

  • Updated eslint-plugin-jsdoc dependency to 39.3.14.

0.3.5

  • Added template to exceptions in tag-lines rule.
  • Added no-useless-constructor to default ESM rules.
  • Updated eslint-plugin-jsdoc dependency to 39.3.4.

0.3.4

  • Added memberof & readonly to exceptions in tag-lines rule.

0.3.3

  • Switched all operators for linebreak rule to after.

0.3.2

  • Small fix to include es2021 environment in 2022 config.

0.3.1

  • Small fix for invalid env ESM attributes for 2018 / 2019.

0.3.0

  • upgraded for ESLint 8.x support.

0.2.7

  • added 'type' to "jsdoc/tag-lines"

0.2.6

  • added 'private', 'protected', 'throws' to "jsdoc/tag-lines"

0.2.5

  • added 'ignore' to "jsdoc/tag-lines"

0.2.4

  • set "settings": { "jsdoc": { "mode": "typescript" } }
  • set "jsdoc/tag-lines" to:
    "jsdoc/tag-lines": ["warn", "always", {
     "noEndLines": true,
     "tags": {
        "inheritDoc": {"lines":"any"},
        "override": {"lines":"any"},
        "returns": {"lines":"any"},
        "see": {"lines":"any"}
     }
    }]

0.2.3

  • set "jsdoc/tag-lines": ["warn", "always", { "noEndLines": true }]
  • set "settings": { "jsdoc": { "mode": "permissive" } }

0.2.2

  • set quote-props to ["error", "as-needed", { "unnecessary": true }]

0.2.1

0.2.0

  • Added eslint-plugin-jsdoc / recommended settings

0.1.0

  • Initial release