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 +19 -0
- package/README.md +46 -0
- package/docs/rules/layer-imports.md +35 -0
- package/docs/rules/path-checker.md +35 -0
- package/docs/rules/public-api-imports.md +35 -0
- package/lib/consts/index.js +216 -0
- package/lib/helpers/index.js +10 -0
- package/lib/index.js +22 -0
- package/lib/rules/handlerNames.js +53 -0
- package/package.json +33 -0
- package/tests/lib/rules/handlerNames.js +52 -0
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 }
|
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
|
+
});
|