eslint-plugin-effector 0.11.0 → 0.13.0
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/package.json +4 -4
- package/rules/enforce-effect-naming-convention/enforce-effect-naming-convention.js +9 -2
- package/rules/enforce-gate-naming-convention/enforce-gate-naming-convention.js +10 -2
- package/rules/enforce-store-naming-convention/enforce-store-naming-convention.js +9 -2
- package/rules/mandatory-scope-binding/mandatory-scope-binding.js +9 -2
- package/rules/no-watch/no-watch.js +10 -2
- package/utils/is.js +10 -1
- package/utils/node-type-is.js +39 -8
- package/docs/.vitepress/cache/deps/_metadata.json +0 -13
- package/docs/.vitepress/cache/deps/package.json +0 -1
- package/docs/.vitepress/cache/deps/vue.js +0 -11590
- package/docs/.vitepress/cache/deps/vue.js.map +0 -7
- package/docs/.vitepress/config.js +0 -58
- package/docs/.vitepress/dist/404.html +0 -23
- package/docs/.vitepress/dist/apple-touch-icon.png +0 -0
- package/docs/.vitepress/dist/assets/app.bd59d2fd.js +0 -1
- package/docs/.vitepress/dist/assets/changelog.md.772a432f.js +0 -1
- package/docs/.vitepress/dist/assets/changelog.md.772a432f.lean.js +0 -1
- package/docs/.vitepress/dist/assets/chunks/VPAlgoliaSearchBox.e15d81bd.js +0 -14
- package/docs/.vitepress/dist/assets/chunks/framework.02595b67.js +0 -2
- package/docs/.vitepress/dist/assets/chunks/theme.23495dab.js +0 -7
- package/docs/.vitepress/dist/assets/index.md.22c1dc01.js +0 -1
- package/docs/.vitepress/dist/assets/index.md.22c1dc01.lean.js +0 -1
- 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-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/presets___future.md.e9103b27.js +0 -1
- package/docs/.vitepress/dist/assets/presets___future.md.e9103b27.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___index.md.036348a2.js +0 -1
- package/docs/.vitepress/dist/assets/presets___index.md.036348a2.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___list.md.c59d692a.js +0 -1
- package/docs/.vitepress/dist/assets/presets___list.md.c59d692a.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___patronum.md.378cac9e.js +0 -1
- package/docs/.vitepress/dist/assets/presets___patronum.md.378cac9e.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___react.md.032da791.js +0 -1
- package/docs/.vitepress/dist/assets/presets___react.md.032da791.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___recommended.md.8e0219bf.js +0 -1
- package/docs/.vitepress/dist/assets/presets___recommended.md.8e0219bf.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___scope.md.a16b0476.js +0 -1
- package/docs/.vitepress/dist/assets/presets___scope.md.a16b0476.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_future.md.cb2d4750.js +0 -4
- package/docs/.vitepress/dist/assets/presets_future.md.cb2d4750.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_index.md.4607f021.js +0 -1
- package/docs/.vitepress/dist/assets/presets_index.md.4607f021.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_patronum.md.ac63c75e.js +0 -4
- package/docs/.vitepress/dist/assets/presets_patronum.md.ac63c75e.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_react.md.91f097f9.js +0 -4
- package/docs/.vitepress/dist/assets/presets_react.md.91f097f9.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_recommended.md.98643b5c.js +0 -4
- package/docs/.vitepress/dist/assets/presets_recommended.md.98643b5c.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_scope.md.e1b77236.js +0 -4
- package/docs/.vitepress/dist/assets/presets_scope.md.e1b77236.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules___index.md.4cf71d5e.js +0 -1
- package/docs/.vitepress/dist/assets/rules___index.md.4cf71d5e.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules___list.md.3d2508ab.js +0 -1
- package/docs/.vitepress/dist/assets/rules___list.md.3d2508ab.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.ad7462af.js +0 -9
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.ad7462af.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.f7ab1c32.js +0 -9
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.f7ab1c32.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.0d2ed508.js +0 -22
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.0d2ed508.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_index.md.5ef5b917.js +0 -1
- package/docs/.vitepress/dist/assets/rules_index.md.5ef5b917.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.58bfbca2.js +0 -15
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.58bfbca2.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.9c380ecb.js +0 -13
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.9c380ecb.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.94231682.js +0 -6
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.94231682.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.d01d60d6.js +0 -10
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.d01d60d6.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-forward.md.f83457f0.js +0 -9
- package/docs/.vitepress/dist/assets/rules_no-forward.md.f83457f0.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-getState.md.4a019d9c.js +0 -14
- package/docs/.vitepress/dist/assets/rules_no-getState.md.4a019d9c.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-guard.md.ce7893c6.js +0 -20
- package/docs/.vitepress/dist/assets/rules_no-guard.md.ce7893c6.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.e1506172.js +0 -12
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.e1506172.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.c493c675.js +0 -19
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.c493c675.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.73a858d8.js +0 -26
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.73a858d8.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.8043425b.js +0 -8
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.8043425b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-watch.md.c78d9c95.js +0 -34
- package/docs/.vitepress/dist/assets/rules_no-watch.md.c78d9c95.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.b5f139ea.js +0 -21
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.b5f139ea.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.e6b1721b.js +0 -27
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.e6b1721b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.142370fb.js +0 -20
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.142370fb.lean.js +0 -1
- package/docs/.vitepress/dist/assets/shared_install.md.71ecb8f5.js +0 -1
- package/docs/.vitepress/dist/assets/shared_install.md.71ecb8f5.lean.js +0 -1
- package/docs/.vitepress/dist/assets/style.d567007a.css +0 -1
- package/docs/.vitepress/dist/changelog.html +0 -26
- package/docs/.vitepress/dist/comet-192.png +0 -0
- package/docs/.vitepress/dist/comet-512.png +0 -0
- package/docs/.vitepress/dist/comet.svg +0 -228
- package/docs/.vitepress/dist/favicon.ico +0 -0
- package/docs/.vitepress/dist/hashmap.json +0 -1
- package/docs/.vitepress/dist/index.html +0 -26
- package/docs/.vitepress/dist/manifest.webmanifest +0 -6
- package/docs/.vitepress/dist/presets/__future.html +0 -26
- package/docs/.vitepress/dist/presets/__index.html +0 -26
- package/docs/.vitepress/dist/presets/__list.html +0 -26
- package/docs/.vitepress/dist/presets/__patronum.html +0 -26
- package/docs/.vitepress/dist/presets/__react.html +0 -26
- package/docs/.vitepress/dist/presets/__recommended.html +0 -26
- package/docs/.vitepress/dist/presets/__scope.html +0 -26
- package/docs/.vitepress/dist/presets/future.html +0 -29
- package/docs/.vitepress/dist/presets/index.html +0 -26
- package/docs/.vitepress/dist/presets/patronum.html +0 -29
- package/docs/.vitepress/dist/presets/react.html +0 -29
- package/docs/.vitepress/dist/presets/recommended.html +0 -29
- package/docs/.vitepress/dist/presets/scope.html +0 -29
- package/docs/.vitepress/dist/rules/__index.html +0 -26
- package/docs/.vitepress/dist/rules/__list.html +0 -26
- package/docs/.vitepress/dist/rules/enforce-effect-naming-convention.html +0 -34
- package/docs/.vitepress/dist/rules/enforce-gate-naming-convention.html +0 -34
- package/docs/.vitepress/dist/rules/enforce-store-naming-convention.html +0 -47
- package/docs/.vitepress/dist/rules/index.html +0 -26
- package/docs/.vitepress/dist/rules/keep-options-order.html +0 -40
- package/docs/.vitepress/dist/rules/mandatory-scope-binding.html +0 -38
- package/docs/.vitepress/dist/rules/no-ambiguity-target.html +0 -31
- package/docs/.vitepress/dist/rules/no-duplicate-on.html +0 -35
- package/docs/.vitepress/dist/rules/no-forward.html +0 -34
- package/docs/.vitepress/dist/rules/no-getState.html +0 -39
- package/docs/.vitepress/dist/rules/no-guard.html +0 -45
- package/docs/.vitepress/dist/rules/no-patronum-debug.html +0 -37
- package/docs/.vitepress/dist/rules/no-unnecessary-combination.html +0 -44
- package/docs/.vitepress/dist/rules/no-unnecessary-duplication.html +0 -51
- package/docs/.vitepress/dist/rules/no-useless-methods.html +0 -33
- package/docs/.vitepress/dist/rules/no-watch.html +0 -59
- package/docs/.vitepress/dist/rules/prefer-sample-over-forward-with-mapping.html +0 -46
- package/docs/.vitepress/dist/rules/prefer-useUnit.html +0 -52
- package/docs/.vitepress/dist/rules/strict-effect-handlers.html +0 -45
- package/docs/.vitepress/dist/shared/install.html +0 -26
- package/docs/.vitepress/theme/custom.css +0 -10
- package/docs/.vitepress/theme/index.js +0 -4
- 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 +0 -228
- package/docs/public/favicon.ico +0 -0
- package/docs/public/manifest.webmanifest +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"plugin:effector/patronum","description":"","frontmatter":{},"headers":[],"relativePath":"presets/patronum.md","lastUpdated":1668497371000}'),e={name:"presets/patronum.md"},l=o("",16),t=[l];function p(r,c,i,u,d,y){return n(),a("div",null,t)}const h=s(e,[["render",p]]);export{C as __pageData,h as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as e,Q as n}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"plugin:effector/react","description":"","frontmatter":{},"headers":[],"relativePath":"presets/react.md","lastUpdated":1668497371000}'),o={name:"presets/react.md"},l=n(`<h1 id="plugin-effector-react" tabindex="-1">plugin:effector/react <a class="header-anchor" href="#plugin-effector-react" aria-label="Permalink to "plugin:effector/react""></a></h1><p>This preset is recommended for projects that use <a href="https://reactjs.org" target="_blank" rel="noreferrer">React</a> with Effector.</p><h2 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to "Installation""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This plugin uses TypeScript for more precise results, but JavaScript is supported too.</p></div><p>First, you need to install ESLint and plugin:</p><p>with <code>pnpm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">pnpm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>yarn</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">yarn</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">add</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>npm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">npm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><p>Add <code>effector</code> to the plugin section of your <code>.eslintrc</code> configuration file, and add <code>plugin:effector/react</code> to the extends section.</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">plugins</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">effector</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">extends</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">plugin:effector/react</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]</span></span>
|
|
4
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="rules" tabindex="-1">Rules <a class="header-anchor" href="#rules" aria-label="Permalink to "Rules""></a></h2><ul><li><a href="/rules/enforce-gate-naming-convention.html">enforce-gate-naming-convention</a></li><li><a href="/rules/mandatory-scope-binding.html">mandatory-scope-binding</a></li><li><a href="/rules/prefer-useUnit.html">prefer-useUnit</a></li></ul>`,16),t=[l];function p(c,r,i,d,u,y){return e(),a("div",null,t)}const h=s(o,[["render",p]]);export{C as __pageData,h as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as e,Q as n}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"plugin:effector/react","description":"","frontmatter":{},"headers":[],"relativePath":"presets/react.md","lastUpdated":1668497371000}'),o={name:"presets/react.md"},l=n("",16),t=[l];function p(c,r,i,d,u,y){return e(),a("div",null,t)}const h=s(o,[["render",p]]);export{C as __pageData,h as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as e,o as a,Q as n}from"./chunks/framework.02595b67.js";const y=JSON.parse('{"title":"plugin:effector/recommended","description":"","frontmatter":{},"headers":[],"relativePath":"presets/recommended.md","lastUpdated":1668497371000}'),o={name:"presets/recommended.md"},l=n(`<h1 id="plugin-effector-recommended" tabindex="-1">plugin:effector/recommended <a class="header-anchor" href="#plugin-effector-recommended" aria-label="Permalink to "plugin:effector/recommended""></a></h1><p>This preset is recommended for most projects.</p><h2 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to "Installation""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This plugin uses TypeScript for more precise results, but JavaScript is supported too.</p></div><p>First, you need to install ESLint and plugin:</p><p>with <code>pnpm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">pnpm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>yarn</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">yarn</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">add</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>npm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">npm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><p>Add <code>effector</code> to the plugin section of your <code>.eslintrc</code> configuration file, and add <code>plugin:effector/recommended</code> to the extends section.</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">plugins</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">effector</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">extends</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">plugin:effector/recommended</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]</span></span>
|
|
4
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="rules" tabindex="-1">Rules <a class="header-anchor" href="#rules" aria-label="Permalink to "Rules""></a></h2><ul><li><a href="/rules/enforce-store-naming-convention.html">enforce-store-naming-convention</a></li><li><a href="/rules/enforce-effect-naming-convention.html">enforce-effect-naming-convention</a></li><li><a href="/rules/no-getState.html">no-getState</a></li><li><a href="/rules/no-useless-methods.html">no-useless-methods</a></li><li><a href="/rules/no-unnecessary-duplication.html">no-unnecessary-duplication</a></li><li><a href="/rules/prefer-sample-over-forward-with-mapping.html">prefer-sample-over-forward-with-mapping</a></li><li><a href="/rules/no-ambiguity-target.html">no-ambiguity-target</a></li><li><a href="/rules/no-watch.html">no-watch</a></li><li><a href="/rules/no-unnecessary-combination.html">no-unnecessary-combination</a></li><li><a href="/rules/no-duplicate-on.html">no-duplicate-on</a></li><li><a href="/rules/keep-options-order.html">keep-options-order</a></li></ul>`,16),t=[l];function p(r,c,i,d,u,h){return a(),e("div",null,t)}const f=s(o,[["render",p]]);export{y as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as e,o as a,Q as n}from"./chunks/framework.02595b67.js";const y=JSON.parse('{"title":"plugin:effector/recommended","description":"","frontmatter":{},"headers":[],"relativePath":"presets/recommended.md","lastUpdated":1668497371000}'),o={name:"presets/recommended.md"},l=n("",16),t=[l];function p(r,c,i,d,u,h){return a(),e("div",null,t)}const f=s(o,[["render",p]]);export{y as __pageData,f as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as e,o as a,Q as o}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"plugin:effector/scope","description":"","frontmatter":{},"headers":[],"relativePath":"presets/scope.md","lastUpdated":1668497371000}'),n={name:"presets/scope.md"},l=o(`<h1 id="plugin-effector-scope" tabindex="-1">plugin:effector/scope <a class="header-anchor" href="#plugin-effector-scope" aria-label="Permalink to "plugin:effector/scope""></a></h1><p>This preset is recommended for projects that use <a href="https://effector.dev/docs/api/effector/scope" target="_blank" rel="noreferrer">Fork API</a>. You can read more about Fork API in <a href="https://dev.to/effector/the-best-part-of-effector-4c27" target="_blank" rel="noreferrer">an article</a>.</p><h2 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to "Installation""></a></h2><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This plugin uses TypeScript for more precise results, but JavaScript is supported too.</p></div><p>First, you need to install ESLint and plugin:</p><p>with <code>pnpm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">pnpm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>yarn</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">yarn</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">add</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><p>with <code>npm</code></p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">npm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint-plugin-effector</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">eslint</span></span></code></pre></div><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><p>Add <code>effector</code> to the plugin section of your <code>.eslintrc</code> configuration file, and add <code>plugin:effector/scope</code> to the extends section.</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">plugins</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">effector</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">extends</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">plugin:effector/scope</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]</span></span>
|
|
4
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="rules" tabindex="-1">Rules <a class="header-anchor" href="#rules" aria-label="Permalink to "Rules""></a></h2><ul><li><a href="/rules/strict-effect-handlers.html">strict-effect-handlers</a></li></ul>`,16),t=[l];function p(c,r,i,d,u,y){return a(),e("div",null,t)}const f=s(n,[["render",p]]);export{C as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as e,o as a,Q as o}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"plugin:effector/scope","description":"","frontmatter":{},"headers":[],"relativePath":"presets/scope.md","lastUpdated":1668497371000}'),n={name:"presets/scope.md"},l=o("",16),t=[l];function p(c,r,i,d,u,y){return a(),e("div",null,t)}const f=s(n,[["render",p]]);export{C as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as n,o as a,Q as t}from"./chunks/framework.02595b67.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"rules/__index.md","lastUpdated":null}'),i={name:"rules/__index.md"},o=t('<ul><li><a href="./enforce-effect-naming-convention.html">enforce-effect-naming-convention</a></li><li><a href="./enforce-gate-naming-convention.html">enforce-gate-naming-convention</a></li><li><a href="./enforce-store-naming-convention.html">enforce-store-naming-convention</a></li><li><a href="./keep-options-order.html">keep-options-order</a></li><li><a href="./mandatory-scope-binding.html">mandatory-scope-binding</a></li><li><a href="./no-ambiguity-target.html">no-ambiguity-target</a></li><li><a href="./no-duplicate-on.html">no-duplicate-on</a></li><li><a href="./no-forward.html">no-forward</a></li><li><a href="./no-getState.html">no-getState</a></li><li><a href="./no-guard.html">no-guard</a></li><li><a href="./no-patronum-debug.html">no-patronum-debug</a></li><li><a href="./no-unnecessary-combination.html">no-unnecessary-combination</a></li><li><a href="./no-unnecessary-duplication.html">no-unnecessary-duplication</a></li><li><a href="./no-useless-methods.html">no-useless-methods</a></li><li><a href="./no-watch.html">no-watch</a></li><li><a href="./prefer-sample-over-forward-with-mapping.html">prefer-sample-over-forward-with-mapping</a></li><li><a href="./prefer-useUnit.html">prefer-useUnit</a></li><li><a href="./strict-effect-handlers.html">strict-effect-handlers</a></li></ul>',1),r=[o];function l(s,c,h,f,m,d){return a(),n("div",null,r)}const u=e(i,[["render",l]]);export{_ as __pageData,u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as n,o as a,Q as t}from"./chunks/framework.02595b67.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"rules/__index.md","lastUpdated":null}'),i={name:"rules/__index.md"},o=t("",1),r=[o];function l(s,c,h,f,m,d){return a(),n("div",null,r)}const u=e(i,[["render",l]]);export{_ as __pageData,u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as n,o as a,Q as t}from"./chunks/framework.02595b67.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"rules/__list.md","lastUpdated":null}'),i={name:"rules/__list.md"},o=t('<ul><li><a href="./enforce-effect-naming-convention.html">enforce-effect-naming-convention</a></li><li><a href="./enforce-gate-naming-convention.html">enforce-gate-naming-convention</a></li><li><a href="./enforce-store-naming-convention.html">enforce-store-naming-convention</a></li><li><a href="./keep-options-order.html">keep-options-order</a></li><li><a href="./mandatory-scope-binding.html">mandatory-scope-binding</a></li><li><a href="./no-ambiguity-target.html">no-ambiguity-target</a></li><li><a href="./no-duplicate-on.html">no-duplicate-on</a></li><li><a href="./no-forward.html">no-forward</a></li><li><a href="./no-getState.html">no-getState</a></li><li><a href="./no-guard.html">no-guard</a></li><li><a href="./no-patronum-debug.html">no-patronum-debug</a></li><li><a href="./no-unnecessary-combination.html">no-unnecessary-combination</a></li><li><a href="./no-unnecessary-duplication.html">no-unnecessary-duplication</a></li><li><a href="./no-useless-methods.html">no-useless-methods</a></li><li><a href="./no-watch.html">no-watch</a></li><li><a href="./prefer-sample-over-forward-with-mapping.html">prefer-sample-over-forward-with-mapping</a></li><li><a href="./prefer-useUnit.html">prefer-useUnit</a></li><li><a href="./strict-effect-handlers.html">strict-effect-handlers</a></li></ul>',1),r=[o];function l(s,c,h,f,m,d){return a(),n("div",null,r)}const u=e(i,[["render",l]]);export{_ as __pageData,u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as n,o as a,Q as t}from"./chunks/framework.02595b67.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"rules/__list.md","lastUpdated":null}'),i={name:"rules/__list.md"},o=t("",1),r=[o];function l(s,c,h,f,m,d){return a(),n("div",null,r)}const u=e(i,[["render",l]]);export{_ as __pageData,u as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{_ as n,c as e,o as s,Q as a}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/enforce-effect-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-effect-naming-convention.md","lastUpdated":1668497778000}'),o={name:"rules/enforce-effect-naming-convention.md"},t=a(`<h1 id="effector-enforce-effect-naming-convention" tabindex="-1">effector/enforce-effect-naming-convention <a class="header-anchor" href="#effector-enforce-effect-naming-convention" aria-label="Permalink to "effector/enforce-effect-naming-convention""></a></h1><p>Enforcing naming conventions helps keep the codebase consistent, and reduces overhead when thinking about how to name a variable with effect. Your effect should be distinguished by a suffix <code>Fx</code>. For example, <code>fetchUserInfoFx</code> is an effect, <code>fetchUserInfo</code> is not.</p><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">rules</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#FFCB6B;">effector/enforce-effect-naming-convention</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">error</span><span style="color:#89DDFF;">"</span></span>
|
|
4
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
|
5
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples""></a></h2><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👍 nice name</span></span>
|
|
6
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> fetchNameFx </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>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad name</span></span>
|
|
9
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> fetchName </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></code></pre></div>`,6),c=[t];function l(p,r,i,f,d,D){return s(),e("div",null,c)}const h=n(o,[["render",l]]);export{F as __pageData,h as default};
|
package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.ad7462af.lean.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as n,c as e,o as s,Q as a}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/enforce-effect-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-effect-naming-convention.md","lastUpdated":1668497778000}'),o={name:"rules/enforce-effect-naming-convention.md"},t=a("",6),c=[t];function l(p,r,i,f,d,D){return s(),e("div",null,c)}const h=n(o,[["render",l]]);export{F as __pageData,h as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{_ as n,c as a,o as s,Q as e}from"./chunks/framework.02595b67.js";const f=JSON.parse('{"title":"effector/enforce-gate-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-gate-naming-convention.md","lastUpdated":1668497778000}'),o={name:"rules/enforce-gate-naming-convention.md"},t=e(`<h1 id="effector-enforce-gate-naming-convention" tabindex="-1">effector/enforce-gate-naming-convention <a class="header-anchor" href="#effector-enforce-gate-naming-convention" aria-label="Permalink to "effector/enforce-gate-naming-convention""></a></h1><p>Enforcing naming conventions helps keep the codebase consistent, and reduces overhead when thinking about how to name a variable with gate. Every gate is a React-component, so it should be named as regular React-component.</p><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to "Configuration""></a></h2><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C792EA;">rules</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#FFCB6B;">effector/enforce-gate-naming-convention</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">error</span><span style="color:#89DDFF;">"</span></span>
|
|
4
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span></span>
|
|
5
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><h2 id="examples" tabindex="-1">Examples <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples""></a></h2><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👍 nice name</span></span>
|
|
6
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> MyFavoritePageGate </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createGate</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad name</span></span>
|
|
9
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> otherFavoritePageGate </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createGate</span><span style="color:#A6ACCD;">()</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,6),l=[t];function p(c,r,i,D,y,d){return s(),a("div",null,l)}const g=n(o,[["render",p]]);export{f as __pageData,g as default};
|
package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.f7ab1c32.lean.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as n,c as a,o as s,Q as e}from"./chunks/framework.02595b67.js";const f=JSON.parse('{"title":"effector/enforce-gate-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-gate-naming-convention.md","lastUpdated":1668497778000}'),o={name:"rules/enforce-gate-naming-convention.md"},t=e("",6),l=[t];function p(c,r,i,D,y,d){return s(),a("div",null,l)}const g=n(o,[["render",p]]);export{f as __pageData,g as default};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/enforce-store-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-store-naming-convention.md","lastUpdated":1668424187000}'),e={name:"rules/enforce-store-naming-convention.md"},l=o(`<h1 id="effector-enforce-store-naming-convention" tabindex="-1">effector/enforce-store-naming-convention <a class="header-anchor" href="#effector-enforce-store-naming-convention" aria-label="Permalink to "effector/enforce-store-naming-convention""></a></h1><p>Enforcing naming conventions helps keep the codebase consistent, and reduces overhead when thinking about how to name a variable with store. Depending on the configuration your stores should be distinguished by a prefix or a postfix $. Enforces prefix convention by default.</p><h2 id="prefix-convention" tabindex="-1">Prefix convention <a class="header-anchor" href="#prefix-convention" aria-label="Permalink to "Prefix convention""></a></h2><p>When configured as:</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">module.exports</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
2
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">rules</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">effector/enforce-store-naming-convention</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">error</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
|
4
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
5
|
-
<span class="line"><span style="color:#89DDFF;">};</span></span></code></pre></div><p>Prefix convention will be enforced:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👍 nice name</span></span>
|
|
6
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $name </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>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad name</span></span>
|
|
9
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> name </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></code></pre></div><h2 id="postfix-convention" tabindex="-1">Postfix convention <a class="header-anchor" href="#postfix-convention" aria-label="Permalink to "Postfix convention""></a></h2><p>When configured as:</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">module.exports</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
10
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">rules</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
11
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#F07178;">effector/enforce-store-naming-convention</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">error</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
|
12
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
13
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">settings</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
14
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">effector</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
15
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">storeNameConvention</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">postfix</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span>
|
|
16
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
17
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
18
|
-
<span class="line"><span style="color:#89DDFF;">};</span></span></code></pre></div><p>Postfix convention will be enforced:</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👍 nice name</span></span>
|
|
19
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> name$ </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>
|
|
20
|
-
<span class="line"></span>
|
|
21
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad name</span></span>
|
|
22
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> name </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">createStrore</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">null</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,12),p=[l];function t(c,r,i,D,y,F){return a(),n("div",null,p)}const f=s(e,[["render",t]]);export{A as __pageData,f as default};
|
package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.0d2ed508.lean.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/enforce-store-naming-convention","description":"","frontmatter":{},"headers":[],"relativePath":"rules/enforce-store-naming-convention.md","lastUpdated":1668424187000}'),e={name:"rules/enforce-store-naming-convention.md"},l=o("",12),p=[l];function t(c,r,i,D,y,F){return a(),n("div",null,p)}const f=s(e,[["render",t]]);export{A as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as n,Q as t}from"./chunks/framework.02595b67.js";const p=JSON.parse('{"title":"Rules","description":"","frontmatter":{},"headers":[],"relativePath":"rules/index.md","lastUpdated":1668424187000}'),i={name:"rules/index.md"},o=t('<h1 id="rules" tabindex="-1">Rules <a class="header-anchor" href="#rules" aria-label="Permalink to "Rules""></a></h1><ul><li><a href="./enforce-effect-naming-convention.html">enforce-effect-naming-convention</a></li><li><a href="./enforce-gate-naming-convention.html">enforce-gate-naming-convention</a></li><li><a href="./enforce-store-naming-convention.html">enforce-store-naming-convention</a></li><li><a href="./keep-options-order.html">keep-options-order</a></li><li><a href="./mandatory-scope-binding.html">mandatory-scope-binding</a></li><li><a href="./no-ambiguity-target.html">no-ambiguity-target</a></li><li><a href="./no-duplicate-on.html">no-duplicate-on</a></li><li><a href="./no-forward.html">no-forward</a></li><li><a href="./no-getState.html">no-getState</a></li><li><a href="./no-guard.html">no-guard</a></li><li><a href="./no-patronum-debug.html">no-patronum-debug</a></li><li><a href="./no-unnecessary-combination.html">no-unnecessary-combination</a></li><li><a href="./no-unnecessary-duplication.html">no-unnecessary-duplication</a></li><li><a href="./no-useless-methods.html">no-useless-methods</a></li><li><a href="./no-watch.html">no-watch</a></li><li><a href="./prefer-sample-over-forward-with-mapping.html">prefer-sample-over-forward-with-mapping</a></li><li><a href="./prefer-useUnit.html">prefer-useUnit</a></li><li><a href="./strict-effect-handlers.html">strict-effect-handlers</a></li></ul>',2),r=[o];function l(s,h,c,f,m,d){return n(),a("div",null,r)}const _=e(i,[["render",l]]);export{p as __pageData,_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as n,Q as t}from"./chunks/framework.02595b67.js";const p=JSON.parse('{"title":"Rules","description":"","frontmatter":{},"headers":[],"relativePath":"rules/index.md","lastUpdated":1668424187000}'),i={name:"rules/index.md"},o=t("",2),r=[o];function l(s,h,c,f,m,d){return n(),a("div",null,r)}const _=e(i,[["render",l]]);export{p as __pageData,_ as default};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o,Q as n}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/keep-options-order","description":"","frontmatter":{},"headers":[],"relativePath":"rules/keep-options-order.md","lastUpdated":1668424187000}'),e={name:"rules/keep-options-order.md"},p=n(`<h1 id="effector-keep-options-order" tabindex="-1">effector/keep-options-order <a class="header-anchor" href="#effector-keep-options-order" aria-label="Permalink to "effector/keep-options-order""></a></h1><p>Some of Effector-methods (e.g., <code>sample</code> and <code>guard</code>) accept config in object form. This form can be read as "when <code>clock</code> is triggered, take data from <code>source</code> pass it through <code>filter</code>/<code>fn</code> and send to <code>target</code>". So, it is better to use semantic order of configuration properties — <code>clock -> source -> filter/fn -> target</code>. The rule enforces this order for any case.</p><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👍 great</span></span>
|
|
2
|
-
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
3
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> formSubmit</span><span style="color:#89DDFF;">,</span></span>
|
|
4
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $formData</span><span style="color:#89DDFF;">,</span></span>
|
|
5
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> prepareData</span><span style="color:#89DDFF;">,</span></span>
|
|
6
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> sendFormToServerFx</span><span style="color:#89DDFF;">,</span></span>
|
|
7
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
8
|
-
<span class="line"></span>
|
|
9
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 weird</span></span>
|
|
10
|
-
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
11
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> prepareData</span><span style="color:#89DDFF;">,</span></span>
|
|
12
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> sendFormToServerFx</span><span style="color:#89DDFF;">,</span></span>
|
|
13
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> formSubmit</span><span style="color:#89DDFF;">,</span></span>
|
|
14
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $formData</span><span style="color:#89DDFF;">,</span></span>
|
|
15
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,3),l=[p];function t(r,c,D,i,F,d){return o(),a("div",null,l)}const C=s(e,[["render",t]]);export{A as __pageData,C as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o,Q as n}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/keep-options-order","description":"","frontmatter":{},"headers":[],"relativePath":"rules/keep-options-order.md","lastUpdated":1668424187000}'),e={name:"rules/keep-options-order.md"},p=n("",3),l=[p];function t(r,c,D,i,F,d){return o(),a("div",null,l)}const C=s(e,[["render",t]]);export{A as __pageData,C as default};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/mandatory-scope-binding","description":"","frontmatter":{},"headers":[],"relativePath":"rules/mandatory-scope-binding.md","lastUpdated":1668424187000}'),l={name:"rules/mandatory-scope-binding.md"},p=o(`<h1 id="effector-mandatory-scope-binding" tabindex="-1">effector/mandatory-scope-binding <a class="header-anchor" href="#effector-mandatory-scope-binding" aria-label="Permalink to "effector/mandatory-scope-binding""></a></h1><p>Forbids <code>Event</code> and <code>Effect</code> usage without <code>useUnit</code> in React components. This ensures <code>Fork API</code> compatibility and allows writing isomorphic code for SSR apps.</p><div class="language-tsx"><button title="Copy Code" class="copy"></button><span class="lang">tsx</span><pre class="shiki material-theme-palenight"><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>
|
|
2
|
-
<span class="line"></span>
|
|
3
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 Event usage is wrapped with \`useEvent\`</span></span>
|
|
4
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> GoodButton </span><span style="color:#89DDFF;">=</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>
|
|
5
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">incrementEvent</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">useUnit</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">increment</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
|
-
<span class="line"></span>
|
|
7
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">onClick</span><span style="color:#89DDFF;">={</span><span style="color:#A6ACCD;">incrementEvent</span><span style="color:#89DDFF;">}></span><span style="color:#A6ACCD;">+</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;">>;</span></span>
|
|
8
|
-
<span class="line"><span style="color:#89DDFF;">};</span></span>
|
|
9
|
-
<span class="line"></span>
|
|
10
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 Event is not wrapped with \`useEvent\` - component is not suitable for isomorphic SSR app</span></span>
|
|
11
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> BadButton </span><span style="color:#89DDFF;">=</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>
|
|
12
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">onClick</span><span style="color:#89DDFF;">={</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:#F07178;">button</span><span style="color:#89DDFF;">>;</span></span>
|
|
13
|
-
<span class="line"><span style="color:#89DDFF;">};</span></span></code></pre></div>`,3),e=[p];function t(c,r,i,y,F,D){return a(),n("div",null,e)}const C=s(l,[["render",t]]);export{A as __pageData,C as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const A=JSON.parse('{"title":"effector/mandatory-scope-binding","description":"","frontmatter":{},"headers":[],"relativePath":"rules/mandatory-scope-binding.md","lastUpdated":1668424187000}'),l={name:"rules/mandatory-scope-binding.md"},p=o("",3),e=[p];function t(c,r,i,y,F,D){return a(),n("div",null,e)}const C=s(l,[["render",t]]);export{A as __pageData,C as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/no-ambiguity-target","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-ambiguity-target.md","lastUpdated":1668424187000}'),e={name:"rules/no-ambiguity-target.md"},t=o(`<h1 id="effector-no-ambiguity-target" tabindex="-1">effector/no-ambiguity-target <a class="header-anchor" href="#effector-no-ambiguity-target" aria-label="Permalink to "effector/no-ambiguity-target""></a></h1><p>Call of <code>guard</code>/<code>sample</code> with <code>target</code> and variable assignment is ambiguity. One of them should 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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 should be rewritten</span></span>
|
|
2
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> result </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;"> trigger</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;"> target </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
3
|
-
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
5
|
-
<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;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Boolean</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> target </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
|
-
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> result </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> target</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,3),l=[t];function p(r,c,i,y,D,A){return n(),a("div",null,l)}const d=s(e,[["render",p]]);export{F as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/no-ambiguity-target","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-ambiguity-target.md","lastUpdated":1668424187000}'),e={name:"rules/no-ambiguity-target.md"},t=o("",3),l=[t];function p(r,c,i,y,D,A){return n(),a("div",null,l)}const d=s(e,[["render",p]]);export{F as __pageData,d as default};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/no-duplicate-on","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-duplicate-on.md","lastUpdated":1668424187000}'),l={name:"rules/no-duplicate-on.md"},p=o(`<h1 id="effector-no-duplicate-on" tabindex="-1">effector/no-duplicate-on <a class="header-anchor" href="#effector-no-duplicate-on" aria-label="Permalink to "effector/no-duplicate-on""></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 material-theme-palenight"><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>
|
|
2
|
-
<span class="line"></span>
|
|
3
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 all explicitly</span></span>
|
|
4
|
-
<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;font-style:italic;">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>
|
|
5
|
-
<span class="line"></span>
|
|
6
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 so, which handler should we choose?</span></span>
|
|
7
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// it's better to remove one of them</span></span>
|
|
8
|
-
<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>
|
|
9
|
-
<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;font-style:italic;">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>
|
|
10
|
-
<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;font-style:italic;">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></code></pre></div>`,3),e=[p];function t(c,r,C,A,y,D){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{F as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const F=JSON.parse('{"title":"effector/no-duplicate-on","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-duplicate-on.md","lastUpdated":1668424187000}'),l={name:"rules/no-duplicate-on.md"},p=o("",3),e=[p];function t(c,r,C,A,y,D){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{F as __pageData,d as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-forward","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-forward.md","lastUpdated":1668424187000}'),l={name:"rules/no-forward.md"},p=o(`<h1 id="effector-no-forward" tabindex="-1">effector/no-forward <a class="header-anchor" href="#effector-no-forward" aria-label="Permalink to "effector/no-forward""></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 could be replaced</span></span>
|
|
2
|
-
<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>
|
|
3
|
-
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
5
|
-
<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></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 could be replaced</span></span>
|
|
6
|
-
<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;font-style:italic;">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>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
9
|
-
<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;font-style:italic;">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></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>`,6),e=[p];function t(r,c,D,y,A,F){return n(),a("div",null,e)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-forward","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-forward.md","lastUpdated":1668424187000}'),l={name:"rules/no-forward.md"},p=o("",6),e=[p];function t(r,c,D,y,A,F){return n(),a("div",null,e)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-getState","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-getState.md","lastUpdated":1668424187000}'),l={name:"rules/no-getState.md"},e=o(`<h1 id="effector-no-getstate" tabindex="-1">effector/no-getState <a class="header-anchor" href="#effector-no-getstate" aria-label="Permalink to "effector/no-getState""></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 material-theme-palenight"><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>
|
|
2
|
-
<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>
|
|
3
|
-
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 good solution</span></span>
|
|
5
|
-
<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;font-style:italic;">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;font-style:italic;">/* ... */</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
|
-
<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>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad solution</span></span>
|
|
9
|
-
<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>
|
|
10
|
-
<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>
|
|
11
|
-
<span class="line"></span>
|
|
12
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#676E95;font-style:italic;">/* ... */</span></span>
|
|
13
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
14
|
-
<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></code></pre></div>`,3),p=[e];function t(c,r,y,D,A,F){return n(),a("div",null,p)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-getState","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-getState.md","lastUpdated":1668424187000}'),l={name:"rules/no-getState.md"},e=o("",3),p=[e];function t(c,r,y,D,A,F){return n(),a("div",null,p)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-guard","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-guard.md","lastUpdated":1668424187000}'),o={name:"rules/no-guard.md"},p=l(`<h1 id="effector-no-guard" tabindex="-1">effector/no-guard <a class="header-anchor" href="#effector-no-guard" aria-label="Permalink to "effector/no-guard""></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 could be replaced</span></span>
|
|
2
|
-
<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>
|
|
3
|
-
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
5
|
-
<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></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 could be replaced</span></span>
|
|
6
|
-
<span class="line"><span style="color:#82AAFF;">guard</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
7
|
-
<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>
|
|
8
|
-
<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;font-style:italic;">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>
|
|
9
|
-
<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>
|
|
10
|
-
<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>
|
|
11
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
12
|
-
<span class="line"></span>
|
|
13
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
14
|
-
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
15
|
-
<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>
|
|
16
|
-
<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>
|
|
17
|
-
<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>
|
|
18
|
-
<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;font-style:italic;">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>
|
|
19
|
-
<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>
|
|
20
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,5),e=[p];function t(c,r,D,y,F,A){return n(),a("div",null,e)}const d=s(o,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-guard","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-guard.md","lastUpdated":1668424187000}'),o={name:"rules/no-guard.md"},p=l("",5),e=[p];function t(c,r,D,y,F,A){return n(),a("div",null,e)}const d=s(o,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-patronum-debug","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-patronum-debug.md","lastUpdated":1668424187000}'),l={name:"rules/no-patronum-debug.md"},p=o(`<h1 id="effector-no-patronum-debug" tabindex="-1">effector/no-patronum-debug <a class="header-anchor" href="#effector-no-patronum-debug" aria-label="Permalink to "effector/no-patronum-debug""></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// from</span></span>
|
|
2
|
-
<span class="line"><span style="color:#89DDFF;font-style:italic;">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;font-style:italic;">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>
|
|
3
|
-
<span class="line"><span style="color:#89DDFF;font-style:italic;">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;font-style:italic;">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>
|
|
4
|
-
<span class="line"></span>
|
|
5
|
-
<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>
|
|
6
|
-
<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;font-style:italic;">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>
|
|
7
|
-
<span class="line"></span>
|
|
8
|
-
<span class="line"><span style="color:#82AAFF;">debug</span><span style="color:#A6ACCD;">($counter)</span><span style="color:#89DDFF;">;</span></span></code></pre></div><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// to</span></span>
|
|
9
|
-
<span class="line"><span style="color:#89DDFF;font-style:italic;">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;font-style:italic;">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>
|
|
10
|
-
<span class="line"></span>
|
|
11
|
-
<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>
|
|
12
|
-
<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;font-style:italic;">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></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>`,5),e=[p];function t(c,r,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-patronum-debug","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-patronum-debug.md","lastUpdated":1668424187000}'),l={name:"rules/no-patronum-debug.md"},p=o("",5),e=[p];function t(c,r,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-unnecessary-combination","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-unnecessary-combination.md","lastUpdated":1668424187000}'),l={name:"rules/no-unnecessary-combination.md"},p=o(`<h1 id="effector-no-unnecessary-combination" tabindex="-1">effector/no-unnecessary-combination <a class="header-anchor" href="#effector-no-unnecessary-combination" aria-label="Permalink to "effector/no-unnecessary-combination""></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 material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">// 👎 can be simplified</span></span>
|
|
2
|
-
<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>
|
|
3
|
-
<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>
|
|
4
|
-
<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>
|
|
5
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
|
-
<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>
|
|
7
|
-
<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;font-style:italic;">store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#A6ACCD;font-style:italic;">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>
|
|
8
|
-
<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>
|
|
9
|
-
<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>
|
|
10
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">))</span><span style="color:#89DDFF;">,</span></span>
|
|
11
|
-
<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>
|
|
12
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
13
|
-
<span class="line"></span>
|
|
14
|
-
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 better</span></span>
|
|
15
|
-
<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>
|
|
16
|
-
<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>
|
|
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:#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>
|
|
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></code></pre></div>`,3),e=[p];function t(c,r,D,y,A,F){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,Q as o}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-unnecessary-combination","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-unnecessary-combination.md","lastUpdated":1668424187000}'),l={name:"rules/no-unnecessary-combination.md"},p=o("",3),e=[p];function t(c,r,D,y,A,F){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{i as __pageData,d as default};
|