DEV: Introduce decorator-position lint rule (#22937)

This commit is contained in:
David Taylor 2023-08-04 12:26:06 +01:00 committed by GitHub
parent e76e0ad592
commit b7e642d99d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 77 additions and 33 deletions

View File

@ -75,14 +75,11 @@ export default class DButton extends GlimmerComponentWithDeprecatedParentView {
@service router;
@notEmpty("args.icon")
btnIcon;
@notEmpty("args.icon") btnIcon;
@equal("args.display", "link")
btnLink;
@equal("args.display", "link") btnLink;
@empty("computedLabel")
noText;
@empty("computedLabel") noText;
constructor() {
super(...arguments);

View File

@ -12,7 +12,8 @@ export default class FormTemplateFieldUpload extends Component.extend(
@tracked uploadComplete = false;
@tracked uploadedFiles = [];
@tracked disabled = this.uploading;
@tracked fileUploadElementId = this.attributes?.label
@tracked
fileUploadElementId = this.attributes?.label
? `${dasherize(this.attributes.label)}-uploader`
: `${this.elementId}-uploader`;
@tracked fileInputSelector = `#${this.fileUploadElementId}`;

View File

@ -38,17 +38,13 @@ export default class BookmarkModal extends Component {
@tracked userTimezone = this.currentUser.user_option.timezone;
@tracked showOptions = this.args.model.bookmark.id ? true : false;
@notEmpty("userTimezone")
userHasTimezoneSet;
@notEmpty("userTimezone") userHasTimezoneSet;
@notEmpty("bookmark.id")
showDelete;
@notEmpty("bookmark.id") showDelete;
@notEmpty("bookmark.id")
editingExistingBookmark;
@notEmpty("bookmark.id") editingExistingBookmark;
@and("bookmark.id", "bookmark.reminderAt")
existingBookmarkHasReminder;
@and("bookmark.id", "bookmark.reminderAt") existingBookmarkHasReminder;
@tracked _closeWithoutSaving = false;
@tracked _savingBookmarkManually = false;

View File

@ -9,9 +9,10 @@ export default class SecondFactorBackupEdit extends Component {
@tracked loading = false;
@tracked errorMessage;
@tracked successMessage;
@tracked backupEnabled =
this.args.model.secondFactor.second_factor_backup_enabled;
@tracked remainingCodes =
@tracked
backupEnabled = this.args.model.secondFactor.second_factor_backup_enabled;
@tracked
remainingCodes =
this.args.model.secondFactor.second_factor_remaining_backup_codes;
@tracked backupCodes;
@tracked secondFactorMethod = SECOND_FACTOR_METHODS.TOTP;

View File

@ -44,8 +44,8 @@ export default class SearchMenu extends Component {
@tracked loading = false;
@tracked results = {};
@tracked noResults = false;
@tracked inPMInboxContext =
this.search.searchContext?.type === "private_messages";
@tracked
inPMInboxContext = this.search.searchContext?.type === "private_messages";
@tracked typeFilter = DEFAULT_TYPE_FILTER;
@tracked suggestionKeyword = false;
@tracked suggestionResults = [];

View File

@ -18,9 +18,8 @@ export default class extends Component {
@tracked onlySelected = false;
@tracked onlyUnselected = false;
@tracked selectedSidebarCategoryIds = [
...this.currentUser.sidebar_category_ids,
];
@tracked
selectedSidebarCategoryIds = [...this.currentUser.sidebar_category_ids];
categoryGroupings = [];

View File

@ -23,7 +23,7 @@
"diffhtml": "1.0.0-beta.20",
"ember-template-lint": "5.10.3",
"eslint": "^8.37.0",
"eslint-config-discourse": "^3.5.0",
"eslint-config-discourse": "^3.6.0",
"eslint-plugin-ember": "11.8.0",
"eslint-plugin-sort-class-members": "1.18.0",
"jsdoc": "^4.0.0",

View File

@ -111,7 +111,9 @@ export default {
const SidebarChatChannelsSection = class extends BaseCustomSidebarSection {
@service currentUser;
@tracked currentUserCanJoinPublicChannels =
@tracked
currentUserCanJoinPublicChannels =
this.currentUser &&
(this.currentUser.staff ||
this.currentUser.has_joinable_public_channels);
@ -344,8 +346,9 @@ export default {
@service site;
@service modal;
@service router;
@tracked userCanDirectMessage =
this.chatService.userCanDirectMessage;
@tracked
userCanDirectMessage = this.chatService.userCanDirectMessage;
constructor() {
super(...arguments);

View File

@ -32,7 +32,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
"@babel/core@^7.20.12":
"@babel/core@^7.18.6", "@babel/core@^7.20.12":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f"
integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==
@ -147,6 +147,21 @@
"@babel/helper-split-export-declaration" "^7.22.5"
semver "^6.3.0"
"@babel/helper-create-class-features-plugin@^7.22.6":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236"
integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
"@babel/helper-member-expression-to-functions" "^7.22.5"
"@babel/helper-optimise-call-expression" "^7.22.5"
"@babel/helper-replace-supers" "^7.22.9"
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
semver "^6.3.1"
"@babel/helper-environment-visitor@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
@ -230,6 +245,15 @@
"@babel/traverse" "^7.22.5"
"@babel/types" "^7.22.5"
"@babel/helper-replace-supers@^7.22.9":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779"
integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==
dependencies:
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-member-expression-to-functions" "^7.22.5"
"@babel/helper-optimise-call-expression" "^7.22.5"
"@babel/helper-simple-access@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
@ -310,6 +334,17 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
"@babel/plugin-proposal-decorators@^7.18.6":
version "7.22.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.7.tgz#9b5b73c2e404f0869ef8a8a53765f8203c5467a7"
integrity sha512-omXqPF7Onq4Bb7wHxXjM3jSMSJvUUbvDvmmds7KI5n9Cq6Ln5I05I1W2nRlRof1rGdiUxJrxwe285WF96XlBXQ==
dependencies:
"@babel/helper-create-class-features-plugin" "^7.22.6"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-replace-supers" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
"@babel/plugin-syntax-decorators" "^7.22.5"
"@babel/plugin-proposal-decorators@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.5.tgz#dc8cdda048e5aea947efda920e030199806b868d"
@ -1718,10 +1753,10 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
eslint-config-discourse@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/eslint-config-discourse/-/eslint-config-discourse-3.5.0.tgz#528db8a5b64e5d0aa96d958a50f9d75456c91e4e"
integrity sha512-IwxNmfyomRKrMCP3dsgxEepKYv/QW5tcLi/NRv7hl06uRK5o+a8QvrFjFiC+KfYcNRQhTQA4So+YwXSrVpCk0A==
eslint-config-discourse@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/eslint-config-discourse/-/eslint-config-discourse-3.6.0.tgz#bceb472ca66fb969600587aa0722d428798e0d4f"
integrity sha512-w4q0D+FtLyYPIgu2ec0SIaY8vNKmj5dPV8AgWqmXLNX2rjFdWXcQQBZRsq4U+JJrOT7v4uNMz+B5mFRMGxOiQw==
dependencies:
"@babel/core" "^7.22.5"
"@babel/eslint-parser" "^7.22.5"
@ -1730,6 +1765,7 @@ eslint-config-discourse@^3.5.0:
ember-template-lint "^5.10.3"
ember-template-lint-plugin-discourse "^3.0.0"
eslint "^8.43.0"
eslint-plugin-decorator-position "^5.0.2"
eslint-plugin-discourse-ember latest
eslint-plugin-ember "^11.8.0"
eslint-plugin-lodash "^7.1.0"
@ -1742,6 +1778,17 @@ eslint-formatter-kakoune@^1.0.0:
resolved "https://registry.yarnpkg.com/eslint-formatter-kakoune/-/eslint-formatter-kakoune-1.0.0.tgz#a95cc4fe1fbc06b84e0f2397e83f5f0b68340125"
integrity sha512-Uk/TVLt6Nf6Xoz7C1iYuZjOSdJxe5aaauGRke8JhKeJwD66Y61/pY2FjtLP04Ooq9PwV34bzrkKkU2UZ5FtDRA==
eslint-plugin-decorator-position@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-decorator-position/-/eslint-plugin-decorator-position-5.0.2.tgz#c96f46d8ef0f7dbd519ff91a67ccc4b6ba30693b"
integrity sha512-wFcRfrB9zljOP1n5udg16h6ITX1jG8cnUvuFVtIqVxw5O9BTOXFHB9hvsTaqpb8JFX2dq19fH3i/ipUeFSF87w==
dependencies:
"@babel/core" "^7.18.6"
"@babel/plugin-proposal-decorators" "^7.18.6"
"@ember-data/rfc395-data" "^0.0.4"
ember-rfc176-data "^0.3.17"
snake-case "^3.0.4"
eslint-plugin-discourse-ember@latest:
version "0.0.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-discourse-ember/-/eslint-plugin-discourse-ember-0.0.3.tgz#69e5876c2ece38ab3d6c4a05f0a20a7dc4c21e37"
@ -3777,7 +3824,7 @@ slash@^4.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
snake-case@^3.0.3:
snake-case@^3.0.3, snake-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==