eslint-plugin-effector 0.10.3 → 0.10.4
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/README.md +2 -55
- package/docs/.vitepress/config.js +58 -0
- package/docs/.vitepress/dist/404.html +19 -0
- package/docs/.vitepress/dist/assets/app.c5be1f68.js +7 -0
- package/docs/.vitepress/dist/assets/index.md.79361962.js +1 -0
- package/docs/.vitepress/dist/assets/index.md.79361962.lean.js +1 -0
- package/docs/.vitepress/dist/assets/inter-cyrillic-ext.0877b0d9.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-cyrillic.f8750142.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-greek-ext.3e6f6728.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-greek.117e1956.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic.ea42a392.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek-ext.4fbe9427.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek.8f4463c4.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin-ext.bd8920cc.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin.bd3b6f56.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-vietnamese.6ce511fb.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-latin-ext.7cc429bc.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-latin.4fe6132f.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.e75737ce.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic.5f2c6c8c.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek-ext.ab0619bc.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek.d5a6d92a.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin-ext.0030eebd.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin.2ed14f66.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-vietnamese.14ce25a6.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-vietnamese.2c644a25.woff2 +0 -0
- package/docs/.vitepress/dist/assets/presets___future.md.6542932d.js +1 -0
- package/docs/.vitepress/dist/assets/presets___future.md.6542932d.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___index.md.af77aa24.js +1 -0
- package/docs/.vitepress/dist/assets/presets___index.md.af77aa24.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___list.md.86dea8af.js +1 -0
- package/docs/.vitepress/dist/assets/presets___list.md.86dea8af.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___patronum.md.9f3ad5fe.js +1 -0
- package/docs/.vitepress/dist/assets/presets___patronum.md.9f3ad5fe.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___react.md.dc2cc31a.js +1 -0
- package/docs/.vitepress/dist/assets/presets___react.md.dc2cc31a.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___recommended.md.af826424.js +1 -0
- package/docs/.vitepress/dist/assets/presets___recommended.md.af826424.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___scope.md.e5dd9837.js +1 -0
- package/docs/.vitepress/dist/assets/presets___scope.md.e5dd9837.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_future.md.2962dd38.js +1 -0
- package/docs/.vitepress/dist/assets/presets_future.md.2962dd38.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_index.md.c3c40451.js +1 -0
- package/docs/.vitepress/dist/assets/presets_index.md.c3c40451.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_patronum.md.58445698.js +1 -0
- package/docs/.vitepress/dist/assets/presets_patronum.md.58445698.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_react.md.fda31c90.js +1 -0
- package/docs/.vitepress/dist/assets/presets_react.md.fda31c90.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_recommended.md.396d0c01.js +1 -0
- package/docs/.vitepress/dist/assets/presets_recommended.md.396d0c01.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_scope.md.55da3541.js +1 -0
- package/docs/.vitepress/dist/assets/presets_scope.md.55da3541.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules___index.md.c943fc87.js +1 -0
- package/docs/.vitepress/dist/assets/rules___index.md.c943fc87.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules___list.md.ba316f20.js +1 -0
- package/docs/.vitepress/dist/assets/rules___list.md.ba316f20.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.09e5af2c.js +6 -0
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.09e5af2c.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.5f3af41a.js +6 -0
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.5f3af41a.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.db33b9cb.js +26 -0
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.db33b9cb.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_index.md.3e915bb2.js +1 -0
- package/docs/.vitepress/dist/assets/rules_index.md.3e915bb2.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.5345093b.js +16 -0
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.5345093b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.aff04a66.js +14 -0
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.aff04a66.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.7fde769b.js +7 -0
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.7fde769b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.09525e1d.js +11 -0
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.09525e1d.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-forward.md.2becbf92.js +11 -0
- package/docs/.vitepress/dist/assets/rules_no-forward.md.2becbf92.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-getState.md.665d0467.js +15 -0
- package/docs/.vitepress/dist/assets/rules_no-getState.md.665d0467.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-guard.md.5056c7b6.js +22 -0
- package/docs/.vitepress/dist/assets/rules_no-guard.md.5056c7b6.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.19f444fb.js +14 -0
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.19f444fb.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.e7221074.js +20 -0
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.e7221074.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.3a99556b.js +27 -0
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.3a99556b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.e13dc29f.js +9 -0
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.e13dc29f.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-watch.md.72ac4d86.js +35 -0
- package/docs/.vitepress/dist/assets/rules_no-watch.md.72ac4d86.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.e5a7f363.js +22 -0
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.e5a7f363.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.2d27cecd.js +28 -0
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.2d27cecd.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.2f8965e2.js +23 -0
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.2f8965e2.lean.js +1 -0
- package/docs/.vitepress/dist/assets/style.9e7714f0.css +1 -0
- package/docs/.vitepress/dist/hashmap.json +1 -0
- package/docs/.vitepress/dist/index.html +20 -0
- package/docs/.vitepress/dist/presets/__future.html +20 -0
- package/docs/.vitepress/dist/presets/__index.html +20 -0
- package/docs/.vitepress/dist/presets/__list.html +20 -0
- package/docs/.vitepress/dist/presets/__patronum.html +20 -0
- package/docs/.vitepress/dist/presets/__react.html +20 -0
- package/docs/.vitepress/dist/presets/__recommended.html +20 -0
- package/docs/.vitepress/dist/presets/__scope.html +20 -0
- package/docs/.vitepress/dist/presets/future.html +20 -0
- package/docs/.vitepress/dist/presets/index.html +20 -0
- package/docs/.vitepress/dist/presets/patronum.html +20 -0
- package/docs/.vitepress/dist/presets/react.html +20 -0
- package/docs/.vitepress/dist/presets/recommended.html +20 -0
- package/docs/.vitepress/dist/presets/scope.html +20 -0
- package/docs/.vitepress/dist/rules/__index.html +20 -0
- package/docs/.vitepress/dist/rules/__list.html +20 -0
- package/docs/.vitepress/dist/rules/enforce-effect-naming-convention.html +25 -0
- package/docs/.vitepress/dist/rules/enforce-gate-naming-convention.html +25 -0
- package/docs/.vitepress/dist/rules/enforce-store-naming-convention.html +45 -0
- package/docs/.vitepress/dist/rules/index.html +20 -0
- package/docs/.vitepress/dist/rules/keep-options-order.html +35 -0
- package/docs/.vitepress/dist/rules/mandatory-scope-binding.html +33 -0
- package/docs/.vitepress/dist/rules/no-ambiguity-target.html +26 -0
- package/docs/.vitepress/dist/rules/no-duplicate-on.html +30 -0
- package/docs/.vitepress/dist/rules/no-forward.html +30 -0
- package/docs/.vitepress/dist/rules/no-getState.html +34 -0
- package/docs/.vitepress/dist/rules/no-guard.html +41 -0
- package/docs/.vitepress/dist/rules/no-patronum-debug.html +33 -0
- package/docs/.vitepress/dist/rules/no-unnecessary-combination.html +39 -0
- package/docs/.vitepress/dist/rules/no-unnecessary-duplication.html +46 -0
- package/docs/.vitepress/dist/rules/no-useless-methods.html +28 -0
- package/docs/.vitepress/dist/rules/no-watch.html +54 -0
- package/docs/.vitepress/dist/rules/prefer-sample-over-forward-with-mapping.html +41 -0
- package/docs/.vitepress/dist/rules/prefer-useUnit.html +47 -0
- package/docs/.vitepress/dist/rules/strict-effect-handlers.html +42 -0
- package/docs/.vitepress/theme/custom.css +8 -0
- package/docs/.vitepress/theme/index.js +4 -0
- package/docs/public/apple-touch-icon.png +0 -0
- package/docs/public/comet-192.png +0 -0
- package/docs/public/comet-512.png +0 -0
- package/docs/public/comet.svg +228 -0
- package/docs/public/favicon.ico +0 -0
- package/docs/public/manifest.webmanifest +6 -0
- package/package.json +1 -1
- package/rules/enforce-store-naming-convention/enforce-store-naming-convention.js +6 -6
- package/utils/create-link-to-rule.js +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-duplicate-on | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-duplicate-on.md.09525e1d.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-duplicate-on" data-v-392d9ceb><div><h1 id="effector-no-duplicate-on" tabindex="-1">effector/no-duplicate-on <a class="header-anchor" href="#effector-no-duplicate-on" aria-hidden="true">#</a></h1><p>Disallow duplicates <code>on</code>-handlers on particular store.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> increment </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEvent</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
16
|
+
<span class="line"></span>
|
|
17
|
+
<span class="line"><span style="color:#676E95;">// 👍 all explicitly</span></span>
|
|
18
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $goodCounter </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStore</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">on</span><span style="color:#A6ACCD;">(increment</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">counter</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> counter </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
19
|
+
<span class="line"></span>
|
|
20
|
+
<span class="line"><span style="color:#676E95;">// 👎 so, which handler should we choose?</span></span>
|
|
21
|
+
<span class="line"><span style="color:#676E95;">// it's better to remove one of them</span></span>
|
|
22
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $badCounter </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStore</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">)</span></span>
|
|
23
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">on</span><span style="color:#A6ACCD;">(increment</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">counter</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> counter </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">)</span></span>
|
|
24
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">on</span><span style="color:#A6ACCD;">(increment</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">counter</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> counter </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">2</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
25
|
+
<span class="line"></span></code></pre></div></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-duplicate-on.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
26
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
27
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
28
|
+
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-forward | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-forward.md.2becbf92.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-forward" data-v-392d9ceb><div><h1 id="effector-no-forward" tabindex="-1">effector/no-forward <a class="header-anchor" href="#effector-no-forward" aria-hidden="true">#</a></h1><p>Any <code>forward</code> call could be replaced with <code>sample</code> call.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// 👎 could be replaced</span></span>
|
|
16
|
+
<span class="line"><span style="color:#82AAFF;">forward</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
17
|
+
<span class="line"></span>
|
|
18
|
+
<span class="line"><span style="color:#676E95;">// 👍 makes sense</span></span>
|
|
19
|
+
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
20
|
+
<span class="line"></span></code></pre></div><p>Nice bonus: <code>sample</code> is extendable. You can add transformation by <code>fn</code> and filtering by <code>filter</code>.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// 👎 could be replaced</span></span>
|
|
21
|
+
<span class="line"><span style="color:#82AAFF;">forward</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">map</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">value</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> value</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
22
|
+
<span class="line"></span>
|
|
23
|
+
<span class="line"><span style="color:#676E95;">// 👍 makes sense</span></span>
|
|
24
|
+
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">fn</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">value</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> value</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
25
|
+
<span class="line"></span></code></pre></div><p>💡 Tip: <a href="/rules/prefer-sample-over-forward-with-mapping.html">prefer-sample-over-forward-with-mapping</a> could be superseded by this rule.</p></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-forward.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
26
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
27
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
28
|
+
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-getState | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-getState.md.665d0467.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-getState" data-v-392d9ceb><div><h1 id="effector-no-getstate" tabindex="-1">effector/no-getState <a class="header-anchor" href="#effector-no-getstate" aria-hidden="true">#</a></h1><p><code>.getState</code> gives rise too difficult to debug imperative code and kind of race condition. Prefer declarative <code>sample</code> to pass data from store and <code>attach</code> for effects.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $username </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStore</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">null</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
16
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> userLoggedIn </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEvent</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
17
|
+
<span class="line"></span>
|
|
18
|
+
<span class="line"><span style="color:#676E95;">// 👍 good solution</span></span>
|
|
19
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> fetchUserCommentsFx </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEffect</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">name</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;">/* ... */</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
20
|
+
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $username</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> userLoggedIn</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> fetchUserCommentsFx </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
21
|
+
<span class="line"></span>
|
|
22
|
+
<span class="line"><span style="color:#676E95;">// 👎 bad solution</span></span>
|
|
23
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> fetchUserCommentsInBadWayFx </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEffect</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
24
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">name</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">$username</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">getState</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
25
|
+
<span class="line"></span>
|
|
26
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#676E95;">/* ... */</span></span>
|
|
27
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
28
|
+
<span class="line"><span style="color:#82AAFF;">forward</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> userLoggedIn</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> fetchUserCommentsInBadWayFx </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
29
|
+
<span class="line"></span></code></pre></div></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-getState.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
30
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
31
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
32
|
+
|
|
33
|
+
</body>
|
|
34
|
+
</html>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-guard | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-guard.md.5056c7b6.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-guard" data-v-392d9ceb><div><h1 id="effector-no-guard" tabindex="-1">effector/no-guard <a class="header-anchor" href="#effector-no-guard" aria-hidden="true">#</a></h1><p>Any <code>guard</code> call could be replaced with <code>sample</code> call.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// 👎 could be replaced</span></span>
|
|
16
|
+
<span class="line"><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Boolean</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
17
|
+
<span class="line"></span>
|
|
18
|
+
<span class="line"><span style="color:#676E95;">// 👍 makes sense</span></span>
|
|
19
|
+
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Boolean</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
20
|
+
<span class="line"></span></code></pre></div><p>Nice bonus: <code>sample</code> is extendable. You can add transformation by <code>fn</code>.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// 👎 could be replaced</span></span>
|
|
21
|
+
<span class="line"><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
22
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span></span>
|
|
23
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">map</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span></span>
|
|
24
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Boolean</span><span style="color:#89DDFF;">,</span></span>
|
|
25
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction</span><span style="color:#89DDFF;">,</span></span>
|
|
26
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
27
|
+
<span class="line"></span>
|
|
28
|
+
<span class="line"><span style="color:#676E95;">// 👍 makes sense</span></span>
|
|
29
|
+
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
30
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> trigger</span><span style="color:#89DDFF;">,</span></span>
|
|
31
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">,</span></span>
|
|
32
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Boolean</span><span style="color:#89DDFF;">,</span></span>
|
|
33
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">fn</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">,</span></span>
|
|
34
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> reaction</span><span style="color:#89DDFF;">,</span></span>
|
|
35
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
36
|
+
<span class="line"></span></code></pre></div></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-guard.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
37
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
38
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
39
|
+
|
|
40
|
+
</body>
|
|
41
|
+
</html>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-patronum-debug | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-patronum-debug.md.19f444fb.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-patronum-debug" data-v-392d9ceb><div><h1 id="effector-no-patronum-debug" tabindex="-1">effector/no-patronum-debug <a class="header-anchor" href="#effector-no-patronum-debug" aria-hidden="true">#</a></h1><p>This rule will help to catch the forgotten <code>debug</code> and will automatically delete from code</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// from</span></span>
|
|
16
|
+
<span class="line"><span style="color:#89DDFF;">import</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">createStore</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">createEvent</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">from</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">effector</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">;</span></span>
|
|
17
|
+
<span class="line"><span style="color:#89DDFF;">import</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">debug</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">from</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">patronum</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">;</span></span>
|
|
18
|
+
<span class="line"></span>
|
|
19
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> increment </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEvent</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
20
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $counter </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStore</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">on</span><span style="color:#A6ACCD;">(increment</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">count</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> count </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
21
|
+
<span class="line"></span>
|
|
22
|
+
<span class="line"><span style="color:#82AAFF;">debug</span><span style="color:#A6ACCD;">($counter)</span><span style="color:#89DDFF;">;</span></span>
|
|
23
|
+
<span class="line"></span></code></pre></div><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// to</span></span>
|
|
24
|
+
<span class="line"><span style="color:#89DDFF;">import</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">createStore</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">createEvent</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">from</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">effector</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">;</span></span>
|
|
25
|
+
<span class="line"></span>
|
|
26
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> increment </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createEvent</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
27
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $counter </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStore</span><span style="color:#A6ACCD;">(</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">on</span><span style="color:#A6ACCD;">(increment</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">count</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> count </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
28
|
+
<span class="line"></span></code></pre></div><p><code>debug</code> are considered to be intended for debugging units from effector and therefore not suitable for sending to the client.</p></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-patronum-debug.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
29
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
30
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
31
|
+
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<title>effector/no-unnecessary-combination | ESLint plugin for Effector</title>
|
|
7
|
+
<meta name="description" content="A VitePress site">
|
|
8
|
+
<link rel="stylesheet" href="/assets/style.9e7714f0.css">
|
|
9
|
+
<link rel="modulepreload" href="/assets/app.c5be1f68.js">
|
|
10
|
+
<link rel="modulepreload" href="/assets/rules_no-unnecessary-combination.md.e7221074.lean.js">
|
|
11
|
+
|
|
12
|
+
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<div id="app"><div class="Layout" data-v-5236d721><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ba282093></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ba282093> Skip to content </a><!--]--><!----><header class="VPNav no-sidebar" data-v-5236d721 data-v-ad1d1a51><div class="VPNavBar" data-v-ad1d1a51 data-v-5c544ded><div class="container" data-v-5c544ded><div class="VPNavBarTitle" data-v-5c544ded data-v-de342594><a class="title" href="/" data-v-de342594><!--[--><!--]--><!----><!--[-->ESLint plugin for Effector<!--]--><!--[--><!--]--></a></div><div class="content" data-v-5c544ded><!--[--><!--]--><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-5c544ded data-v-bbd7bba4><span id="main-nav-aria-label" class="visually-hidden" data-v-bbd7bba4>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/presets/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Presets<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/rules/" data-v-bbd7bba4 data-v-f2e87c9b data-v-43d5b194><!--[-->Rules<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-5c544ded data-v-b18b5f44><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-b18b5f44 data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-5c544ded data-v-ec2bb10b data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-5c544ded data-v-231001ce data-v-1da9cf42><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1da9cf42><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-1da9cf42><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-1da9cf42><div class="VPMenu" data-v-1da9cf42 data-v-54f41434><!----><!--[--><!--[--><!----><div class="group" data-v-231001ce><div class="item appearance" data-v-231001ce><p class="label" data-v-231001ce>Appearance</p><div class="appearance-action" data-v-231001ce><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-label="toggle dark mode" aria-checked="false" data-v-231001ce data-v-910d4043 data-v-6fb6d0ff><span class="check" data-v-6fb6d0ff><span class="icon" data-v-6fb6d0ff><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-910d4043><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-910d4043><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-231001ce><div class="item social-links" data-v-231001ce><div class="VPSocialLinks social-links-list" data-v-231001ce data-v-bb87c15e><!--[--><a class="VPSocialLink" href="https://github.com/effector/eslint-plugin" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink" href="https://twitter.com/effectorjs" target="_blank" rel="noopener" data-v-bb87c15e data-v-9dcd5acc><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-5c544ded data-v-8494978f><span class="container" data-v-8494978f><span class="top" data-v-8494978f></span><span class="middle" data-v-8494978f></span><span class="bottom" data-v-8494978f></span></span></button></div></div></div><!----></header><!----><!----><div class="VPContent" id="VPContent" data-v-5236d721 data-v-1853a4d3><div class="VPDoc has-aside" data-v-1853a4d3 data-v-392d9ceb><div class="container" data-v-392d9ceb><div class="aside" data-v-392d9ceb><div class="aside-curtain" data-v-392d9ceb></div><div class="aside-container" data-v-392d9ceb><div class="aside-content" data-v-392d9ceb><div class="VPDocAside" data-v-392d9ceb data-v-e2950fc2><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-e2950fc2 data-v-d8c9f9a3><div class="content" data-v-d8c9f9a3><div class="outline-marker" data-v-d8c9f9a3></div><div class="outline-title" data-v-d8c9f9a3>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-d8c9f9a3><span class="visually-hidden" id="doc-outline-aria-label" data-v-d8c9f9a3> Table of Contents for current page </span><ul class="root" data-v-d8c9f9a3 data-v-71cd9c96><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-e2950fc2></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-392d9ceb><div class="content-container" data-v-392d9ceb><!--[--><!--]--><main class="main" data-v-392d9ceb><div style="position:relative;" class="vp-doc _rules_no-unnecessary-combination" data-v-392d9ceb><div><h1 id="effector-no-unnecessary-combination" tabindex="-1">effector/no-unnecessary-combination <a class="header-anchor" href="#effector-no-unnecessary-combination" aria-hidden="true">#</a></h1><p>Call of <code>combine</code>/<code>merge</code> in <code>clock</code>/<code>source</code> is unnecessary. It can be omitted from source code.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki"><code><span class="line"><span style="color:#676E95;">// 👎 can be simplified</span></span>
|
|
16
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> badEventOne </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
17
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">combine</span><span style="color:#A6ACCD;">($store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> $store2)</span><span style="color:#89DDFF;">,</span></span>
|
|
18
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $filter</span><span style="color:#89DDFF;">,</span></span>
|
|
19
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
20
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> badEventOne </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
21
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">combine</span><span style="color:#A6ACCD;">($store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> $store2</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#A6ACCD;">store2</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> (</span><span style="color:#89DDFF;">{</span></span>
|
|
22
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">x</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> store1</span><span style="color:#89DDFF;">,</span></span>
|
|
23
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">y</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> store2</span><span style="color:#89DDFF;">,</span></span>
|
|
24
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">))</span><span style="color:#89DDFF;">,</span></span>
|
|
25
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $filter</span><span style="color:#89DDFF;">,</span></span>
|
|
26
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
27
|
+
<span class="line"></span>
|
|
28
|
+
<span class="line"><span style="color:#676E95;">// 👍 better</span></span>
|
|
29
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> goodEventOne </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> [$store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> $store2]</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $filter </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
30
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> goodEventTwo </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
31
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">x</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">x</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $store2 </span><span style="color:#89DDFF;">},</span></span>
|
|
32
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $filter</span><span style="color:#89DDFF;">,</span></span>
|
|
33
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
34
|
+
<span class="line"></span></code></pre></div></div></div></main><!--[--><!--]--><footer class="VPDocFooter" data-v-392d9ceb data-v-8d4e89ab><div class="edit-info" data-v-8d4e89ab><div class="edit-link" data-v-8d4e89ab><a class="VPLink link edit-link-button" href="https://github.com/effector/eslint-plugin/edit/master/docs/rules/no-unnecessary-combination.md" target="_blank" rel="noreferrer" data-v-8d4e89ab data-v-43d5b194><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" data-v-8d4e89ab><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div></div></div><footer class="VPFooter" data-v-5236d721 data-v-ae90d55f><div class="container" data-v-ae90d55f><p class="message" data-v-ae90d55f>Released under the MIT License.</p><!----></div></footer><!--[--><!--]--></div></div>
|
|
35
|
+
<script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"79361962\",\"presets___future.md\":\"6542932d\",\"presets___index.md\":\"af77aa24\",\"presets___list.md\":\"86dea8af\",\"presets___patronum.md\":\"9f3ad5fe\",\"presets___react.md\":\"dc2cc31a\",\"presets___recommended.md\":\"af826424\",\"presets___scope.md\":\"e5dd9837\",\"presets_future.md\":\"2962dd38\",\"presets_index.md\":\"c3c40451\",\"presets_patronum.md\":\"58445698\",\"presets_react.md\":\"fda31c90\",\"presets_recommended.md\":\"396d0c01\",\"presets_scope.md\":\"55da3541\",\"rules___index.md\":\"c943fc87\",\"rules___list.md\":\"ba316f20\",\"rules_enforce-effect-naming-convention.md\":\"09e5af2c\",\"rules_enforce-gate-naming-convention.md\":\"5f3af41a\",\"rules_enforce-store-naming-convention.md\":\"db33b9cb\",\"rules_index.md\":\"3e915bb2\",\"rules_keep-options-order.md\":\"5345093b\",\"rules_mandatory-scope-binding.md\":\"aff04a66\",\"rules_no-ambiguity-target.md\":\"7fde769b\",\"rules_no-duplicate-on.md\":\"09525e1d\",\"rules_no-forward.md\":\"2becbf92\",\"rules_no-getstate.md\":\"665d0467\",\"rules_no-guard.md\":\"5056c7b6\",\"rules_no-patronum-debug.md\":\"19f444fb\",\"rules_no-unnecessary-combination.md\":\"e7221074\",\"rules_no-unnecessary-duplication.md\":\"3a99556b\",\"rules_no-useless-methods.md\":\"e13dc29f\",\"rules_no-watch.md\":\"72ac4d86\",\"rules_prefer-sample-over-forward-with-mapping.md\":\"e5a7f363\",\"rules_prefer-useunit.md\":\"2d27cecd\",\"rules_strict-effect-handlers.md\":\"2f8965e2\"}")</script>
|
|
36
|
+
<script type="module" async src="/assets/app.c5be1f68.js"></script>
|
|
37
|
+
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|