eslint-plugin-aezakmi-handler-names 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.eslintrc.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ root: true,
5
+ extends: [
6
+ "eslint:recommended",
7
+ "plugin:eslint-plugin/recommended",
8
+ "plugin:node/recommended",
9
+ ],
10
+ env: {
11
+ node: true,
12
+ },
13
+ overrides: [
14
+ {
15
+ files: ["tests/**/*.js"],
16
+ env: { mocha: true },
17
+ },
18
+ ],
19
+ };
package/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # eslint-plugin-ulbi-tv-plugin
2
+
3
+ plugin for production project
4
+
5
+ ## Installation
6
+
7
+ You'll first need to install [ESLint](https://eslint.org/):
8
+
9
+ ```sh
10
+ npm i eslint --save-dev
11
+ ```
12
+
13
+ Next, install `eslint-plugin-ulbi-tv-plugin`:
14
+
15
+ ```sh
16
+ npm install eslint-plugin-ulbi-tv-plugin --save-dev
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ Add `ulbi-tv-plugin` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:
22
+
23
+ ```json
24
+ {
25
+ "plugins": [
26
+ "ulbi-tv-plugin"
27
+ ]
28
+ }
29
+ ```
30
+
31
+
32
+ Then configure the rules you want to use under the rules section.
33
+
34
+ ```json
35
+ {
36
+ "rules": {
37
+ "ulbi-tv-plugin/rule-name": 2
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Supported Rules
43
+
44
+ * Fill in provided rules here
45
+
46
+
@@ -0,0 +1,35 @@
1
+ # safasf (layer-imports)
2
+
3
+ Please describe the origin of the rule here.
4
+
5
+ ## Rule Details
6
+
7
+ This rule aims to...
8
+
9
+ Examples of **incorrect** code for this rule:
10
+
11
+ ```js
12
+
13
+ // fill me in
14
+
15
+ ```
16
+
17
+ Examples of **correct** code for this rule:
18
+
19
+ ```js
20
+
21
+ // fill me in
22
+
23
+ ```
24
+
25
+ ### Options
26
+
27
+ If there are any options, describe them here. Otherwise, delete this section.
28
+
29
+ ## When Not To Use It
30
+
31
+ Give a short description of when it would be appropriate to turn off this rule.
32
+
33
+ ## Further Reading
34
+
35
+ If there are other links that describe the issue this rule addresses, please include them here in a bulleted list.
@@ -0,0 +1,35 @@
1
+ # feature sliced relative path checker (path-checker)
2
+
3
+ Please describe the origin of the rule here.
4
+
5
+ ## Rule Details
6
+
7
+ This rule aims to...
8
+
9
+ Examples of **incorrect** code for this rule:
10
+
11
+ ```js
12
+
13
+ // fill me in
14
+
15
+ ```
16
+
17
+ Examples of **correct** code for this rule:
18
+
19
+ ```js
20
+
21
+ // fill me in
22
+
23
+ ```
24
+
25
+ ### Options
26
+
27
+ If there are any options, describe them here. Otherwise, delete this section.
28
+
29
+ ## When Not To Use It
30
+
31
+ Give a short description of when it would be appropriate to turn off this rule.
32
+
33
+ ## Further Reading
34
+
35
+ If there are other links that describe the issue this rule addresses, please include them here in a bulleted list.
@@ -0,0 +1,35 @@
1
+ # descr (public-api-imports)
2
+
3
+ Please describe the origin of the rule here.
4
+
5
+ ## Rule Details
6
+
7
+ This rule aims to...
8
+
9
+ Examples of **incorrect** code for this rule:
10
+
11
+ ```js
12
+
13
+ // fill me in
14
+
15
+ ```
16
+
17
+ Examples of **correct** code for this rule:
18
+
19
+ ```js
20
+
21
+ // fill me in
22
+
23
+ ```
24
+
25
+ ### Options
26
+
27
+ If there are any options, describe them here. Otherwise, delete this section.
28
+
29
+ ## When Not To Use It
30
+
31
+ Give a short description of when it would be appropriate to turn off this rule.
32
+
33
+ ## Further Reading
34
+
35
+ If there are other links that describe the issue this rule addresses, please include them here in a bulleted list.
@@ -0,0 +1,216 @@
1
+ const HANDLER_NAME_PATTERN = /^(on)(.+)(Handler)$/i
2
+
3
+ const WRONG_HANDLER_NAME_MESSAGE = 'Handler should starts with "on" and ends with "Handler"'
4
+
5
+ const SHARED_HANDLERS = {
6
+ "AbTestsTable": ["onToggleBar"],
7
+ "ActionButtons": ["onHideDeleteModalHandler", "onHideEditModalHandler", "onShowDeleteClickHandler", "onShowEditModalHandler"],
8
+ "ActionTypeBlock": ["onActionChange"],
9
+ "AddEmailForm": ["handleFormSubmitted", "onChangeIsMainHandler", "onConfirmNewMailHandler", "onCopyAddressHandler", "onCopyLinkHandler", "onCopyPasswordHandler", "onOpenChangeTutorialModalHandler", "onOpenChangeTutorialNotGmailModalHandler", "openTutorialModalHandler", "setToolTipAddressOpen", "setToolTipPasswordOpen"],
10
+ "AddGeoForm": ["onAddGeosHandler"],
11
+ "AddGeoModal": ["onOpenChangeHandler"],
12
+ "AddKeyForm": ["handleFormSubmitted"],
13
+ "AddKeywordsForm": ["onAddGeosHandler", "onRepeatQueryAsoMobileAppsHandler"],
14
+ "AddKeywordsFromAppBlock": ["onAddKeywordsHandler", "onChangeIsSelectAppsHandler"],
15
+ "AddKeywordsModal": ["onClearInputHandler", "onCloseSelectAppsModalHandler", "onOpenChangeHandler"],
16
+ "AddValueForm": ["onChangeStepHandler", "onCreateValueHandler"],
17
+ "AddingCommentBlock": ["addComment", "handleEditComment"],
18
+ "AddKeysToNiche": ["handleFormSubmitted", "onChangeAction", "onRepeatRequestHandler"],
19
+ "addValueBlock": ["handleHideAddModal", "handleShowAddModal", "onClickButtonWhenModalOpen"],
20
+ "AdvertisingTableActionsCell": ["onAddAdsHandler", "onDeleteAdsHandler", "onOpenChangeAddHandler", "onOpenChangeEditHandler", "onSaveAdsHandler", "setOpenAdd", "setOpenDelete", "setOpenEdit"],
21
+ "Alert": ["closeToast"],
22
+ "AppAdvertisingForm": ["handleFormSubmitted"],
23
+ "AppAdvertisingTable": ["onChangePerPageHandler", "onSetCurrentPageHandler", "onToggleBar"],
24
+ "AppCard": ["onClickAppLinkHandler"],
25
+ "AppEmails": ["onChangeMainMailsModalsHandler", "onChangeNewMailsModalsHandler"],
26
+ "AppItem": ["onClickRemoveHandler", "onToogleCheckboxHandler"],
27
+ "AppListActionBlock": ["onOpenChangeModalAddKeysHandler", "setOpenAddKeys"],
28
+ "AppListModal": ["onAddToGroupHandler"],
29
+ "AppModal": ["onChangeHandler", "onRemoveIsAddToNicheHandler"],
30
+ "AppTitle": ["onClickLinkHandler"],
31
+ "AppleAppFilters": ["onChangeFiltersHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilterSelect"],
32
+ "AsoMobileForm": ["handleFormSubmitted", "onChangeCountryValueHandler", "onChangeNicheId", "onRepeatRequestHandler"],
33
+ "Attribute": ["onClickAttrHandler", "onClickCloseButtonHandler", "onOpenChangSecondTooltipHandler"],
34
+ "BasicFormPush": ["handleAppChange", "handleNicheChange"],
35
+ "Breadcrumbs": ["handleDropDownOpenChange", "handleDropDownValueChange"],
36
+ "Card": ["onClickAppLinkHandler", "onClickCardHandler", "onClickDashboardLinkHandler"],
37
+ "CardMetricPush": ["onClickActionButtonHandler", "onClickSecondButtonHandler"],
38
+ "ChangeMainEmailForm": ["onClickSaveButtonHandler", "setSearchValueHandler"],
39
+ "ChangeStatusForm": ["onChangeStatus", "onSaveHandler"],
40
+ "ChartBlock": ["onRepeatRequestHandler"],
41
+ "CheckItem": ["onChangeTrackingCheckHandler", "onOpenChangeTrackModalHandler"],
42
+ "CheckTable": ["onChangeOpenTableHandler", "onChangeTrackingCheckHandler", "onCloseDeleteModalHandler", "onDeleteCheckHandler", "onOpenDeleteModalHandler", "onSetSortHandler", "setOpenPopup"],
43
+ "ChecksFilters": ["onApplyDatesHandler", "onChangeDaysHandler", "onChangeSearchHandler", "onClearInputHandler", "onCloseCalendarHandler", "onOpenCalendarHandler", "onResetDateToDefaultHandler", "onSetStartDateHandler", "onStateFilterChangeHandler"],
44
+ "Collapsible": ["handleOpenChanged"],
45
+ "CommentModal": ["openCommentAddingModal", "openCommentEditingModal", "setIsCommentAddingModalOpen", "setIsCommentEditingModalOpen", "setIsCommentModalOpen"],
46
+ "CommentTableModal": ["setOpenComment"],
47
+ "ContentBlock": ["onCloseSliderModalHandler", "toggleShowAllHandler"],
48
+ "ContentForm": ["addExternalFiles", "deleteExternalFiles", "onChangeImgVarHandler", "onReorderFilesHandler"],
49
+ "ContentFormList": ["addNewVariantHandler"],
50
+ "ContentImgUpload": ["addExternalFiles", "deleteExternalFiles", "onReorderFilesHandler"],
51
+ "CustomHeader": ["onApplyDates", "onChangeMonthHandler", "onChangeYearHandler", "onClickMonth", "onClickYear", "onDecreasePeriodHandler", "onEndDateBlurHandler", "onEndDateChangeHandler", "onIncreasePeriodHandler", "onKeyEndDateHandler", "onKeyStartDateHandler", "onResetDateStartHandler", "onStartDateBlurHandler", "onStartDateChangeHandler"],
52
+ "DateInput": ["onBlurInputHandler", "onCloseCalendarHandler", "onKeyDownInputHandler", "onOpenCalendarHandler"],
53
+ "DatePickerComp": ["datePickerHandler", "onClickMonthHandler", "onClickOutsideHandler", "onClickYearHandler"],
54
+ "DeleteItem": ["handleFormSubmitted", "onSubmitHandler"],
55
+ "DeleteModal": ["hadleCancel", "handleDelete", "setIsDeleteModalOpen"],
56
+ "DeleteValueForm": ["onDeleteHandler", "setDeleteValueModalOpen"],
57
+ "DetailedStat": ["onChangePerPageHandler", "onClickLinkHandler", "onFilterChangeHandler", "onScrollHandler", "onSetCurrentPageHandler", "onSetSortHandler"],
58
+ "DetailedStatChart": ["onApplyDatesHandler", "onChangeDaysHandler", "onCloseCalendarHandler", "onOpenCalendarHandler", "onResetDateToDefaultHandler", "onSetEndDateHandler", "onSetStartDateHandler", "setAppChartDataType", "setChartAppModalParam"],
59
+ "DonutBar": ["onMouseEnterHandler", "onMouseLeaveHandler", "onMouseMoveHandler"],
60
+ "DynamicIndicatorsBlock": ["setCurrentTab"],
61
+ "EditableCell": ["clickEditBtnHandler", "setOpenEditModal"],
62
+ "EditInstallsForm": ["onSaveHandler"],
63
+ "EditKeys": ["onAddNewCheckKeyHandler", "onChangeModalDisplayHandler", "onRepeatRequestHandler"],
64
+ "EditKeywords": ["onAddToGeoKeywordsHandler", "onChangeValueHandler", "onUpdateNicheHandler"],
65
+ "EditKeywordsPush": ["onAddKeywordHandler", "onChangeInputValue", "onDeleteKeywordHandler", "onKeywordExistModalCloseHandler", "onUpdateKeywordsHandler"],
66
+ "EditLinksBlock": ["handleSaveLinks"],
67
+ "EditParamForm": ["onGnrlParamKeyChangeHandler", "onRepeatRequestHandler", "onSaveParametersHandler", "onStffParamChangeHandler"],
68
+ "EditUndefinedValueForm": ["onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler"],
69
+ "EditValueForm": ["onChangePointsHandler", "onChangePointsTypeHandler", "onSaveHandler"],
70
+ "EditingCommentBlock": ["changeComment", "handleEditComment"],
71
+ "EmailItem": ["onClickEmailHandler", "onToogleMainMail"],
72
+ "EmailTutorial": ["setTutorialModalDisplay"],
73
+ "EmployeesTable": ["handleSortChange", "onClickLinkHandler", "setSearch"],
74
+ "FileUpload": ["onDrop"],
75
+ "FilesFrame": ["onImageDragEndHandler"],
76
+ "Filter": ["onOpenChangeHandler", "onParamTypeChangeHandler"],
77
+ "FinalForm": ["onEditInstallsHandler"],
78
+ "HeaderActions": ["onAddGeoHandler", "onAddKeywordsHandler", "onClickAddGeoHandler", "onClickAddKeywrodsHandler", "setIsOpenAddGeoModal", "setIsOpenAddKeywordsModal"],
79
+ "HistoryScoreChangesTable": ["handleSortChange", "onChangeConsiderStatusHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onCreateScoreNoteHandler", "onOpenChangeAddPointsHandler", "onSetCurrentPageHandler", "onToggleBar", "setOpenAddPoints"],
80
+ "HistoryScoreTableActionsCell": ["onOpenChangeEditHandler", "onUpdateScoreHandler", "setOpenEdit", "setOpenReturn", "setOpenRevoke"],
81
+ "Image": ["imageLoadHandler"],
82
+ "ImageContainer": ["onDelete"],
83
+ "Input": ["handleChange", "handleClearInput", "handleToggleShowPassword"],
84
+ "InstallationsTableRow": ["updateTaskHandler"],
85
+ "Keyword": ["onSetIsDeletedHandler"],
86
+ "KeywordActions": ["handleDeleteModalClose", "handleEditModalClose", "onClickDeleteBtnHandler", "onClickEditBtnHandler", "onClickSaveEditKeywords", "onDeleteHandler"],
87
+ "KeywordInstallsTable": ["handleDeleteModalClose", "handleDeleteSelected", "handleKeepModalClose", "handleKeepSelected", "handleSelectAll", "onClickDeleteHandler", "onClickKeepHandler", "onScrollHandler", "onToggleBar"],
88
+ "KeywordPush": ["onDeletedHandler"],
89
+ "KeywordsForm": ["handleDeleteAllCheckboxChange", "handleDeleteModalClose", "handleDeleteSelectedGeos", "onClickDeleteGeosHandler"],
90
+ "KeywordsTableRow": ["handleDeleteModalClose", "handleKeepModalClose", "onClickDeleteHandler", "onClickKeepHandler"],
91
+ "Letter": ["onChangeFavouriteLetterHandler", "onDeleteLetterHandler", "onReturnToLettersHandler"],
92
+ "LetterImage": ["setOpenImageModal"],
93
+ "LetterItem": ["onChangeFavouriteLetterHandler", "onChangeReadLetterHandler", "onDeleteLetterHandler", "onOpenLetterHandler", "setIsHoveredLetter"],
94
+ "Letters": ["onDeleteAllLettersHandler", "onReadAllLettersHandler", "setOpenDeleteAllLettersModal", "setOpenPopup"],
95
+ "LinkParamList": ["onChangeSearchHandler", "onClearInputHandler", "onRadioChangeHandler", "onSumbitFormHandler"],
96
+ "ListOfApplicationsTable": ["onFilterChangeHandler", "onToggleBar"],
97
+ "ListOfInstallationsTable": ["onToggleBar", "updateTasksHandler"],
98
+ "LogIn": ["handleFormSubmitted", "onChangeHandler", "setOpen"],
99
+ "MetricCard": ["onChangeChartAppParamHandler", "onChangeShowDetailsHandler"],
100
+ "Modal": ["onClickActionButtonHandler"],
101
+ "MultiSelect": ["fetchNextPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onClickCloseAllOptions", "preventListboxKeyDownHandler"],
102
+ "Navbar": ["openNotificationHandler", "openSubMenuHandler"],
103
+ "NicheActionsCell": ["onCopyClickHandler", "onEditKeywordsHandler", "onGeoDeleteHandler", "onOpenChangeDeleteHandler", "onOpenChangeEditHandler", "setOpenDelete", "setOpenEdit"],
104
+ "NicheAppList": ["onChangeAddAllKeysHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onOpenChangeModalAddGroupKeysHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler", "setOpenAddGroupKeys"],
105
+ "NicheAppListModal": ["onAddToNicheGroupHandler"],
106
+ "NicheForm": ["handleFormSubmitted", "onChangeAction", "onChangeIsSelectAppsHandler", "onRepeatRequestHandler"],
107
+ "NicheList": ["onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler", "onSetSortHandler"],
108
+ "NicheTable": ["onChangeDeleteAllGeosHandler", "onChangeDeleteGeoHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onGroupCopyClickHandler", "onGroupGeosDeleteHandler", "onOpenChangeModalDeleteAllGeosHandler", "onSetCurrentPageHandler", "onSetSortHandler", "setOpenDelete"],
109
+ "NicheTitle": ["onChangeSearchHandler", "onClearInputHandler", "onCloseSelectAppsModalHandler", "onDeleteNicheHandler", "onOpenChangeAddKeysModalHandler", "onOpenChangeDeleteHandler", "onOpenChangeUpdateNameHandler", "onScrollHandler", "onUpdateNicheNameHandler", "setOpenAddKeys", "setOpenDelete", "setOpenPopup", "setOpenUpdate"],
110
+ "NoCommentsBlock": ["openCommentAddingModal"],
111
+ "Notification": ["onClickLinkHandler", "setIsReadNewNotifHandler"],
112
+ "NotificationsList": ["onMarkAllNotificationAsReadHandler", "onRepeatRequestHandler", "onScrollHandler", "onScrollToTopHandler", "setOpenPopup"],
113
+ "OtherScreens": ["onToggleOpenOtherScreensHandler"],
114
+ "OutKeywordsFilters": ["onChangeFiltersHandler", "onChangeFilterValuesHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilter", "setIsOpenFilterSelect"],
115
+ "OutKeywordsTable": ["handleDeleteOutKeywords", "handleKeepOutKeywords", "onToggleBar"],
116
+ "OutKeywordsTableWrapped": ["onToggleBar"],
117
+ "ParamAppListModal": ["onAddToParamKeyAppGroupHandler"],
118
+ "ParamAppModal": ["onApplyActionToAppHandler", "onChangeHandler", "onUnlinkAppModalHandler", "setOpenUnlinkAppModal"],
119
+ "ParamKeyForm": ["handleFormSubmitted", "onChangeIsSelectAppsHandler"],
120
+ "Parameters": ["onChangeOpenChartModalHandler"],
121
+ "ParamsForm": ["onGnrlParamKeyChangeHandler"],
122
+ "PointsBlock": ["onPointsTypeChange"],
123
+ "PushBotsFilters": ["onChangeFiltersHandler", "onChangeFilterValuesHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilter", "setIsOpenFilterSelect"],
124
+ "Rating": ["handleClick", "handleHover"],
125
+ "RatingPrimitive": ["onMouseLeave", "symbolClick", "symbolEnd", "symbolMouseMove"],
126
+ "RatingsTable": ["onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler", "onSetSortHandler"],
127
+ "RefreshButton": ["onStartRefreshMode"],
128
+ "RenameTestVarName": ["handleFormSubmitted"],
129
+ "ReviewRow": ["onToggleOpenHandler"],
130
+ "ReviewsTable": ["onApplyDatesHandler", "onChangeAppsValueHandler", "onChangeCountryValueHandler", "onChangeDaysHandler", "onChangePerPageHandler", "onChangeRatingValueHandler", "onChangeSearchHandler", "onClearInputHandler", "onCloseCalendarHandler", "onOpenCalendarHandler", "onRepeatRequestHandler", "onResetDateToDefaultHandler", "onSetCurrentPageHandler", "onSetEndDateHandler", "onSetSortHandler", "onSetStartDateHandler", "onShowRealDataChangeHandler", "onTranslateAllChangeHandler"],
131
+ "SawCommentBlock": ["openCommentEditingModal"],
132
+ "SawLinksBlock": ["openLinksEditingModalOpen"],
133
+ "ScoreChangesForm": ["handleFormSubmitted"],
134
+ "Screenshots": ["onClickImageHandler", "onCloseSliderModalHandler", "toggleShowAllHandler"],
135
+ "Select": ["onBlurHandler", "onChangeSearchHandler", "onClearInputHandler"],
136
+ "SelectNewApps": ["onChangeNewAppsHandler"],
137
+ "SignUp": ["handleFormSubmitted"],
138
+ "Slider": ["onClickSliderHandler"],
139
+ "StaffForm": ["onStffParamChangeHandler"],
140
+ "StepWrapper": ["onDeleteTestVariantHandler", "onRenameTestVarNameHandler"],
141
+ "StepsNavigator": ["onClickNextButtonHandler", "onClickPrevButtonHandler"],
142
+ "StrategyForm": ["handleStrategyChange", "handleStrategyIsNotInListChange"],
143
+ "TabDaysApps": ["onApplyDatesHandler", "onChangeDaysAppsHandler", "onCloseCalendarHandler", "onOpenCalendarHandler", "onResetDateToDefaultHandler", "onSetEndDateHandler", "onSetStartDateHandler"],
144
+ "Table": ["handleSort", "onParamTypeChangeHandler"],
145
+ "TableParameterBlock": ["onChangeSearchHandler", "onClearInputHandler", "onCloseSelectAppsModalHandler", "onCreateParamKeyHandler", "onOpenChangeParamKeyModalHandler", "onRepeatRequestHandler", "onScrollHandler"],
146
+ "TableParamActionCell": ["onChangeSearchHandler", "onClearInputHandler", "onClickEditUndefinedHandler", "onClickTitleEditUndefinedModal", "onCloseSelectAppsModalHandler", "onDeleteParamKeyHandler", "onOpenChangeDeleteHandler", "onOpenChangeEditUndefinedModal", "onOpenChangeUpdateHandler"],
147
+ "TableUserActionsCell": ["onDeleteUserHandler", "onOpenChangeDeleteHandler", "onOpenChangeUpdateHandler", "onUpdateUserHandler"],
148
+ "TableUserBlock": ["onChangeHandler", "onGroupUsersDeleteHandler", "onOpenChangeDeleteHandler"],
149
+ "TableVacationActionCell": ["onDeleteVacationHandler", "onOpenChangeEditHandler", "setOpenDelete", "setOpenEdit"],
150
+ "TableVacationSettings": ["onCreateVacationNoteHandler", "onOpenChangeAddHandler", "setOpenAddVacation"],
151
+ "TestActions": ["clickCommentHandler", "clickDeleteHandler", "clickLinksHandler", "clickViewHandler", "onToggleBar", "setIsCommentModalOpen", "setIsDeleteModalOpen", "setIsLinksModalOpen", "setIsOpenPopup", "setIsViewModalOpen"],
152
+ "TestsFilters": ["onChangeFiltersHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilterSelect"],
153
+ "Textarea": ["handleInputValueChanged"],
154
+ "TooltipComp": ["onOpenChangeHandler"],
155
+ "TopAppsByKeyTable": ["onRepeatRequestHandler"],
156
+ "TrafficKeyword": ["onCopyTitleHandler"],
157
+ "TranslateText": ["onTranslateKeywordHandler"],
158
+ "UpdateNiche": ["handleFormSubmitted", "onRepeatRequestHandler"],
159
+ "useAddGeoForm": ["onAddGeosHandler"],
160
+ "useAddKeywordsForm": ["onAddGeosHandler"],
161
+ "useAddKeywordsModal": ["changeIsSelectAppsModalOpenHandler", "loadMoreAppsHandler", "onChangeAppDataHandler", "onClearInputHandler", "onCloseSelectAppsModalHandler", "onOpenChangeHandler", "onRepeatQueryAsoMobileAppsHandler"],
162
+ "useAddKeysToNiche": ["handleFormSubmitted", "onChangeAction", "onRepeatRequestHandler"],
163
+ "useAdvertisingTableActionsCell": ["onAddAdsHandler", "onDeleteAdsHandler", "onOpenChangeAddHandler", "onOpenChangeEditHandler", "onSaveAdsHandler"],
164
+ "useAppAdvertisingTable": ["onChangePerPageHandler", "onSetCurrentPageHandler", "onToggleBar"],
165
+ "useAppListModal": ["onAddToGroupHandler"],
166
+ "useAsoMobileForm": ["handleFormSubmitted", "onChangeCountryValueHandler", "onChangeNicheId", "onRepeatRequestHandler"],
167
+ "useBasicFormPush": ["handleAppChange", "handleAppIsNotInListChange", "handleNicheChange", "handleNicheIsNotInListChange"],
168
+ "useChangeStatusForm": ["onChangeStatus", "onSaveHandler"],
169
+ "useCustomHeader": ["onDecreasePeriodHandler", "onEndDateBlurHandler", "onEndDateChangeHandler", "onIncreasePeriodHandler", "onKeyEndDateHandler", "onKeyStartDateHandler", "onResetDateStartHandler", "onStartDateBlurHandler", "onStartDateChangeHandler"],
170
+ "useDatesFilter": ["onApplyDates", "onChangeTabsHandler", "onCloseCalendarHandler", "onOpenCalendarHandler", "onResetDateHandler", "onSetStartDateHandler"],
171
+ "useEditKeywords": ["onAddToGeoKeywordsHandler", "onChangeValueHandler", "onUpdateNicheHandler"],
172
+ "useEditKeywordsPush": ["onAddKeywordHandler", "onChangeInputValue", "onDeleteKeywordHandler", "onKeywordExistModalCloseHandler", "onUpdateKeywordsHandler"],
173
+ "useEditUndefinedValueForm": ["onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler"],
174
+ "useFilterPopover": ["fetchNextPageHandler", "onApplyActionHandler", "onChangeOptionHandler", "onChangeSearchHandler", "onClearInputHandler", "onClickOutsideHandler", "onCloseFilterContentHandler", "preventListboxKeyDownHandler"],
175
+ "useHistoryScoreChangesTable": ["onChangeConsiderStatusHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onCreateScoreNoteHandler", "onOpenChangeAddPointsHandler", "onSetCurrentPageHandler", "onSetSortHandler", "onToggleBar"],
176
+ "useHistoryScoreTableActionsCell": ["onOpenChangeEditHandler", "onUpdateScoreHandler"],
177
+ "useKeywordActions": ["handleDeleteModalClose", "handleEditModalClose", "onClickDeleteBtnHandler", "onClickEditBtnHandler", "onClickSaveEditKeywords", "onDeleteHandler"],
178
+ "useKeywordInstallsTable": ["handleDeleteModalClose", "handleDeleteSelected", "handleKeepModalClose", "handleKeepSelected", "handleKeywordSelect", "handleSelectAll", "onClickDeleteHandler", "onClickKeepHandler", "onScrollHandler", "onToggleBar"],
179
+ "useKeywordsForm": ["handleDeleteAllCheckboxChange", "handleDeleteModalClose", "handleDeleteSelectedGeos", "onCheckGeoHandler", "onClickDeleteGeosHandler"],
180
+ "useLinkParamList": ["onChangeSearchHandler", "onClearInputHandler", "onRadioChangeHandler", "onSumbitFormHandler"],
181
+ "useListOfApplicationsTable": ["onFilterChangeHandler", "onToggleBar"],
182
+ "useListOfInstallationsTable": ["onToggleBar", "updateTasksHandler"],
183
+ "useModal": ["onClickHandler", "onScrollHandler", "onScrollToTopHandler"],
184
+ "useNicheActionsCell": ["onCopyClickHandler", "onEditKeywordsHandler", "onGeoDeleteHandler", "onOpenChangeDeleteHandler", "onOpenChangeEditHandler"],
185
+ "useNicheAppList": ["onChangeAddAllKeysHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onOpenChangeModalAddGroupKeysHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler"],
186
+ "useNicheAppListModal": ["onAddToNicheGroupHandler"],
187
+ "useNicheForm": ["handleFormSubmitted", "onChangeAction", "onChangeIsSelectAppsHandler", "onRepeatRequestHandler", "onSetSearchAppsModalHandler"],
188
+ "useNicheTable": ["onChangeDeleteAllGeosHandler", "onChangeDeleteGeoHandler", "onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onGroupCopyClickHandler", "onGroupGeosDeleteHandler", "onOpenChangeModalDeleteAllGeosHandler", "onSetCurrentPageHandler", "onSetSortHandler"],
189
+ "useNicheTitle": ["onChangeSearchHandler", "onClearInputHandler", "onCloseSelectAppsModalHandler", "onDeleteNicheHandler", "onOpenChangeAddKeysModalHandler", "onOpenChangeDeleteHandler", "onOpenChangeUpdateNameHandler", "onScrollHandler", "onUpdateNicheKeysHandler", "onUpdateNicheNameHandler"],
190
+ "useNichesList": ["onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler"],
191
+ "useNotification": ["onClickLinkHandler", "setIsReadNewNotifHandler"],
192
+ "useNotificationsList": ["onMarkAllNotificationAsReadHandler", "onRepeatRequestHandler", "onScrollHandler", "onScrollToTopHandler"],
193
+ "useOutKeywordsFilters": ["onChangeFiltersHandler", "onChangeFilterValuesHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilter", "setIsOpenFilterSelect"],
194
+ "usePagination": ["handleMainPageClicked", "handleNextPageClicked", "handlePreviousPageClicked", "handleToEndPageClicked", "handleToStartPageClicked"],
195
+ "useParamAppListModal": ["onAddToParamKeyAppGroupHandler"],
196
+ "useParamAppModal": ["onApplyActionToAppHandler", "onChangeHandler", "onUnlinkAppModalHandler", "setOpenUnlinkAppModal"],
197
+ "useParamKeyForm": ["handleFormSubmitted", "onChangeIsSelectAppsHandler", "onRepeatRequestHandler"],
198
+ "usePushBotsFilters": ["onChangeFiltersHandler", "onChangeFilterValuesHandler", "onResetAllFiltersHandler", "onResetFilterHandler", "setIsOpenFilter", "setIsOpenFilterSelect"],
199
+ "useRatingsTable": ["onChangePerPageHandler", "onChangeSearchHandler", "onClearInputHandler", "onRepeatRequestHandler", "onSetCurrentPageHandler", "onSetSortHandler"],
200
+ "useReadMore": ["onGetKeywordsHandler", "onToggleOpenHandler"],
201
+ "useSidebar": ["handleClickOutside", "onLogoutHandler", "onToggleSidebarHandler"],
202
+ "useStepsForm": ["handlerClickProgress", "onClickNextButtonHandler", "onClickPrevButtonHandler"],
203
+ "useStrategyForm": ["handleStrategyChange", "handleStrategyIsNotInListChange"],
204
+ "useTableParameterBlock": ["onChangeSearchHandler", "onClearInputHandler", "onCloseSelectAppsModalHandler", "onOpenChangeParamKeyModalHandler", "onRepeatRequestHandler", "onScrollHandler", "setOpenAddKey"],
205
+ "useTableParamActionCell": ["handleIsStretchingChange", "onChangeSearchHandler", "onClearInputHandler", "onClickEditUndefinedHandler", "onClickTitleEditUndefinedModal", "onCloseSelectAppsModalHandler", "onDeleteParamKeyHandler", "onOpenChangeDeleteHandler", "onOpenChangeEditUndefinedModal", "onOpenChangeUpdateHandler", "onScrollHandler", "onUpdateParamKeyHandler", "setOpenDelete", "setOpenEditUndefined", "setOpenUpdate"],
206
+ "useTableVacationActionCell": ["onDeleteVacationHandler", "onOpenChangeEditHandler", "onUpdateVacationHandler"],
207
+ "useTableVacationSettings": ["onCreateVacationNoteHandler", "onOpenChangeAddHandler"],
208
+ "useVacationForm": ["onBlurInputHandler", "onChangeInputHandler", "onChangeStepHandler", "onCloseCalendarHandler", "onKeyDownInputHandler", "onOpenCalendarHandler", "onSave", "onSetStartDateHandler"],
209
+ "UserCell": ["onChangeHandler"],
210
+ "UserForm": ["handleFormSubmitted", "onRepeatRequestHandler", "onSubmitHandler"],
211
+ "VacationForm": ["onBlurInputHandler", "onChangeInputHandler", "onChangeStepHandler", "onCloseCalendarHandler", "onKeyDownInputHandler", "onOpenCalendarHandler", "onSave", "onSetStartDateHandler"],
212
+ "ValueBlock": ["onValueTypeChange"],
213
+ "ViewModal": ["setIsViewModalOpen"]
214
+ }
215
+
216
+ module.exports = { SHARED_HANDLERS, HANDLER_NAME_PATTERN, WRONG_HANDLER_NAME_MESSAGE }
@@ -0,0 +1,10 @@
1
+ const { HANDLER_NAME_PATTERN } = require("../consts")
2
+
3
+ function checkValidHandlerName(name) {
4
+ if (name.match(HANDLER_NAME_PATTERN)) return true
5
+ return false
6
+ }
7
+
8
+ module.exports = {
9
+ checkValidHandlerName
10
+ }
package/lib/index.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview plugin for correct naming component handlers
3
+ * @author vitya
4
+ */
5
+ "use strict";
6
+
7
+ //------------------------------------------------------------------------------
8
+ // Requirements
9
+ //------------------------------------------------------------------------------
10
+
11
+ const requireIndex = require("requireindex");
12
+
13
+ //------------------------------------------------------------------------------
14
+ // Plugin Definition
15
+ //------------------------------------------------------------------------------
16
+
17
+
18
+ // import all rules in lib/rules
19
+ module.exports.rules = requireIndex(__dirname + "/rules");
20
+
21
+
22
+
@@ -0,0 +1,53 @@
1
+ const { SHARED_HANDLERS, WRONG_HANDLER_NAME_MESSAGE } = require("../consts")
2
+ const { checkValidHandlerName } = require("../helpers")
3
+
4
+ module.exports = {
5
+ meta: {
6
+ type: null, // `problem`, `suggestion`, or `layout`
7
+ docs: {
8
+ description: "saf",
9
+ category: "Fill me in",
10
+ recommended: false,
11
+ url: null, // URL to the documentation page for this rule
12
+ },
13
+ fixable: null, // Or `code` or `whitespace`
14
+ schema: [
15
+ {
16
+ type: 'object',
17
+ properties: {
18
+ alias: {
19
+ type: 'string',
20
+ },
21
+ ignoreImportPatterns: {
22
+ type: 'array',
23
+ }
24
+ },
25
+ }
26
+ ],
27
+ },
28
+
29
+ create(context) {
30
+ return {
31
+ JSXOpeningElement(node) {
32
+ const componentName = node.name.name
33
+ const componentHandlers = SHARED_HANDLERS[componentName] || []
34
+
35
+ node.attributes.forEach(prop => {
36
+ const propName = prop.name.name
37
+ const isHandler = componentHandlers.includes(propName)
38
+
39
+ if (isHandler) {
40
+ const propValueName = prop?.value?.value || prop?.value?.expression?.name
41
+
42
+ if (typeof propValueName === 'string' && !checkValidHandlerName(propValueName)) {
43
+ context.report({
44
+ node: prop,
45
+ message: WRONG_HANDLER_NAME_MESSAGE
46
+ })
47
+ }
48
+ }
49
+ })
50
+ }
51
+ };
52
+ },
53
+ };
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "eslint-plugin-aezakmi-handler-names",
3
+ "version": "0.0.9",
4
+ "description": "plugin for correct naming component handlers",
5
+ "keywords": [
6
+ "eslint",
7
+ "eslintplugin",
8
+ "eslint-plugin"
9
+ ],
10
+ "author": "vitya",
11
+ "main": "lib/index.js",
12
+ "scripts": {
13
+ "lint": "eslint .",
14
+ "test": "mocha tests --recursive"
15
+ },
16
+ "dependencies": {
17
+ "micromatch": "^4.0.5",
18
+ "requireindex": "^1.2.0"
19
+ },
20
+ "devDependencies": {
21
+ "eslint": "^8.0.1",
22
+ "eslint-plugin-eslint-plugin": "^4.0.1",
23
+ "eslint-plugin-node": "^11.1.0",
24
+ "mocha": "^9.1.3"
25
+ },
26
+ "engines": {
27
+ "node": "12.x || 14.x || >= 16"
28
+ },
29
+ "peerDependencies": {
30
+ "eslint": ">=6"
31
+ },
32
+ "license": "ISC"
33
+ }
@@ -0,0 +1,52 @@
1
+ const rule = require("../../../lib/rules/handlerNames"),
2
+ RuleTester = require("eslint").RuleTester;
3
+ const {WRONG_HANDLER_NAME_MESSAGE} = require("../../../lib/consts")
4
+
5
+ const aliasOptions = [
6
+ {
7
+ alias: '@'
8
+ }
9
+ ]
10
+ const ruleTester = new RuleTester({
11
+ parserOptions: { ecmaVersion: 'latest', sourceType: 'module', ecmaFeatures: { jsx: true } },
12
+ });
13
+ ruleTester.run("handlerNames", rule, {
14
+ valid: [
15
+ {
16
+ filename: 'C:\\Users\\tim\\Desktop\\javascript\\production_project\\src\\features\\Article',
17
+ code: ` <RefreshButton
18
+ buttonVariant="light"
19
+ isFetching={isFetchingAppsData}
20
+ onStartRefreshMode={onStartRefreshModeHandler}
21
+ appsDataServerLength={appsDataServerLength}
22
+ />`,
23
+ errors: [],
24
+ options: aliasOptions,
25
+ },
26
+ {
27
+ filename: 'C:\\Users\\tim\\Desktop\\javascript\\production_project\\src\\features\\Article',
28
+ code: ` <RefreshButton
29
+ buttonVariant="light"
30
+ isFetching={isFetchingAppsData}
31
+ onStartRefreshMode={() => console.log('helo')}
32
+ appsDataServerLength={appsDataServerLength}
33
+ />`,
34
+ errors: [],
35
+ options: aliasOptions,
36
+ },
37
+ ],
38
+
39
+ invalid: [
40
+ {
41
+ filename: 'C:\\Users\\tim\\Desktop\\javascript\\production_project\\src\\features\\Article',
42
+ code: ` <RefreshButton
43
+ buttonVariant="light"
44
+ isFetching={isFetchingAppsData}
45
+ onStartRefreshMode={someFreekFunc}
46
+ appsDataServerLength={appsDataServerLength}
47
+ />`,
48
+ errors: [WRONG_HANDLER_NAME_MESSAGE],
49
+ options: aliasOptions,
50
+ },
51
+ ],
52
+ });