@bud-tools/eslint-plugin-bt-plugin
v0.9.0
Published
Helpful eslint rules for bt plugins.
Maintainers
Readme
eslint-plugin-bt-plugin
Helpful eslint rules for bt plugins.
Use these rules in a bt plugin
yarn add --dev eslint-plugin-bt-plugin
Then, in your plugin's .eslintrc.js, add "plugin:bt-plugin/recommended" to your extends property.
example:
module.exports = {
extends: ['@bud-tools/eslint-config-budtools-typescript', 'plugin:@bud-tools/bt-plugin/recommended'],
};To override how an individual rules behaves, add the plugin name and change the its rules value.
plugins: ['bt-plugin'],
rules: {
'bt-plugin/no-hardcoded-messages': 'error'
}Use these rules to migrate a plugin based on btdxCommand to use btCommand
These eslint rules are experimental and cause significant code changes. Please use with caution and test changes thoroughly
yarn add @bud-tools/bt-plugins-core
yarn add --dev @bud-tools/eslint-plugin-bt-plugin[migration includes all of the recommended rules, so you don't have to include both]
module.exports = {
extends: ['@bud-tools/eslint-config-budtools-typescript', 'plugin:@bud-tools/bt-plugin/migration'],
};Rules
💼 Configurations enabled in.
⚠️ Configurations set to warn in.
📚 Set in the library configuration.
✈️ Set in the migration configuration.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.
💡 Manually fixable by editor suggestions.
| Name | Description | 💼 | ⚠️ | 🔧 | 💡 | | :------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ | :------ | :--- | :- | :- | | command-example | Ensure commands have a summary, description, and examples | | ✈️ ✅ | | | | command-summary | Ensure commands have a summary | ✈️ ✅ | | 🔧 | | | dash-o | Warn on a flag that uses -o | | ✈️ ✅ | | | | encourage-alias-deprecation | Commands and flags aliases probably want to deprecate their old names to provide more warnings to users | | ✈️ | 🔧 | 💡 | | flag-case | Enforce lowercase kebab-case flag names | ✈️ ✅ | | 🔧 | | | flag-cross-references | Enforce flag cross references for dependOn,exclusive,exactlyOne | ✈️ ✅ | | | | | flag-min-max-default | Enforce that flags with min/max values have a default value | | ✈️ ✅ | | | | flag-summary | Enforce that flags have a summary property and that longDescription is renamed to description | ✈️ ✅ | | 🔧 | | | get-connection-with-version | Calls to getConnection should pass in a version | | ✈️ ✅ | | | | id-flag-suggestions | Create better budtoolsId flags with length and startsWith properties | | ✈️ ✅ | 🔧 | 💡 | | no-args-parse-without-strict-false | If you parse args/argv, the class should have strict set to false | ✈️ ✅ | | 🔧 | | | no-builtin-flags | Handling for btdxCommand's flags.builtin | ✈️ | | 🔧 | | | no-deprecated-properties | Removes non-existent properties left over from BtdxCommand | ✈️ | | 🔧 | | | no-duplicate-short-characters | Prevent duplicate use of short characters or conflicts between aliases and flags | ✈️ ✅ | | | | | no-filepath-flags | Change filepath flag to file flag | | | 🔧 | | | no-h-short-char | Do not allow creation of a flag with short char -h | ✈️ ✅ | | | | | no-hardcoded-messages-commands | Use loaded messages and separate files for messages | | ✈️ ✅ | | | | no-hardcoded-messages-flags | Use loaded messages and separate files for messages | | ✈️ ✅ | | | | no-id-flags | Change Id flag to budtoolsId | ✈️ | | 🔧 | | | no-json-flag | Do not allow creation of json flag | ✈️ ✅ | | | | | no-missing-messages | Checks core Messages usage for correct usage of named messages and message tokens | 📚 ✈️ ✅ | | | | | no-number-flags | Change number flag to integer | | | 🔧 | | | no-oclif-flags-command-import | Change import of flags and Command from oclif to use bt-plugins-core | ✈️ ✅ | | 🔧 | | | no-btdx-command-import | Change import and base class from BtdxCommand to btCommand | ✈️ | | 🔧 | | | no-split-examples | Arrays of messags should use getMessages instead of getMessage followed by EOL splitting | ✈️ ✅ | | 🔧 | | | no-this-flags | Fix references to this.org (property on BtdxCommand) | ✈️ | | 🔧 | 💡 | | no-this-org | Fix references to this.org (property on BtdxCommand) | ✈️ | | 🔧 | 💡 | | no-this-ux | BtCommand does not have a ux property | ✈️ | | 🔧 | | | no-time-flags | Migrate time flags to Flags.duration | ✈️ | | 🔧 | | | no-unnecessary-aliases | Mark when an alias is unnecessary because its only an order permutation, not really a different name | ✈️ ✅ | | 🔧 | | | no-unnecessary-properties | Boolean properties are false by default, so they should not be set to false | | ✈️ ✅ | 🔧 | | | no-username-properties | Convert requiresUsername and supportusername to username flags | ✈️ | | 🔧 | | | read-only-properties | Class-level static properties, like flags or descriptions, should be marked read-only | | ✈️ ✅ | 🔧 | | | run-matches-class-type | The return type of the run method should match the Type passed to btCommand | ✈️ ✅ | | 🔧 | | | btdx-flags-property | Change flag definitions to BtCommand version | ✈️ | | 🔧 | | | should-parse-flags | The run method should call this.parse when there are flags | ✈️ | | 🔧 | | | use-bt-command-flags | Use Flags export from bt-plugins-core | ✈️ | | 🔧 | |
