eslint-plugin-effector 0.10.5 → 0.11.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/.nvmrc +1 -1
- package/docs/.vitepress/cache/deps/_metadata.json +13 -0
- package/docs/.vitepress/cache/deps/package.json +1 -0
- package/docs/.vitepress/cache/deps/vue.js +11590 -0
- package/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/docs/.vitepress/dist/404.html +12 -8
- package/docs/.vitepress/dist/apple-touch-icon.png +0 -0
- package/docs/.vitepress/dist/assets/app.bd59d2fd.js +1 -0
- package/docs/.vitepress/dist/assets/changelog.md.772a432f.js +1 -0
- package/docs/.vitepress/dist/assets/changelog.md.772a432f.lean.js +1 -0
- package/docs/.vitepress/dist/assets/chunks/VPAlgoliaSearchBox.e15d81bd.js +14 -0
- package/docs/.vitepress/dist/assets/chunks/framework.02595b67.js +2 -0
- package/docs/.vitepress/dist/assets/chunks/theme.23495dab.js +7 -0
- package/docs/.vitepress/dist/assets/index.md.22c1dc01.js +1 -0
- package/docs/.vitepress/dist/assets/index.md.22c1dc01.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___future.md.e9103b27.js +1 -0
- package/docs/.vitepress/dist/assets/presets___future.md.e9103b27.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___index.md.036348a2.js +1 -0
- package/docs/.vitepress/dist/assets/presets___index.md.036348a2.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___list.md.c59d692a.js +1 -0
- package/docs/.vitepress/dist/assets/presets___list.md.c59d692a.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___patronum.md.378cac9e.js +1 -0
- package/docs/.vitepress/dist/assets/presets___patronum.md.378cac9e.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___react.md.032da791.js +1 -0
- package/docs/.vitepress/dist/assets/presets___react.md.032da791.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___recommended.md.8e0219bf.js +1 -0
- package/docs/.vitepress/dist/assets/presets___recommended.md.8e0219bf.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets___scope.md.a16b0476.js +1 -0
- package/docs/.vitepress/dist/assets/presets___scope.md.a16b0476.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_future.md.cb2d4750.js +4 -0
- package/docs/.vitepress/dist/assets/presets_future.md.cb2d4750.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_index.md.4607f021.js +1 -0
- package/docs/.vitepress/dist/assets/presets_index.md.4607f021.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_patronum.md.ac63c75e.js +4 -0
- package/docs/.vitepress/dist/assets/presets_patronum.md.ac63c75e.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_react.md.91f097f9.js +4 -0
- package/docs/.vitepress/dist/assets/presets_react.md.91f097f9.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_recommended.md.98643b5c.js +4 -0
- package/docs/.vitepress/dist/assets/presets_recommended.md.98643b5c.lean.js +1 -0
- package/docs/.vitepress/dist/assets/presets_scope.md.e1b77236.js +4 -0
- package/docs/.vitepress/dist/assets/presets_scope.md.e1b77236.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules___index.md.4cf71d5e.js +1 -0
- package/docs/.vitepress/dist/assets/rules___index.md.4cf71d5e.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules___list.md.3d2508ab.js +1 -0
- package/docs/.vitepress/dist/assets/rules___list.md.3d2508ab.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.ad7462af.js +9 -0
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.ad7462af.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.f7ab1c32.js +9 -0
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.f7ab1c32.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_enforce-store-naming-convention.md.db33b9cb.js → rules_enforce-store-naming-convention.md.0d2ed508.js} +7 -11
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.0d2ed508.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_index.md.5ef5b917.js +1 -0
- package/docs/.vitepress/dist/assets/rules_index.md.5ef5b917.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_keep-options-order.md.5345093b.js → rules_keep-options-order.md.58bfbca2.js} +3 -4
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.58bfbca2.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.9c380ecb.js +13 -0
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.9c380ecb.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-ambiguity-target.md.7fde769b.js → rules_no-ambiguity-target.md.94231682.js} +3 -4
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.94231682.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.d01d60d6.js +10 -0
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.d01d60d6.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-forward.md.f83457f0.js +9 -0
- package/docs/.vitepress/dist/assets/rules_no-forward.md.f83457f0.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-getState.md.665d0467.js → rules_no-getState.md.4a019d9c.js} +6 -7
- package/docs/.vitepress/dist/assets/rules_no-getState.md.4a019d9c.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-guard.md.5056c7b6.js → rules_no-guard.md.ce7893c6.js} +7 -9
- package/docs/.vitepress/dist/assets/rules_no-guard.md.ce7893c6.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.e1506172.js +12 -0
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.e1506172.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-unnecessary-combination.md.e7221074.js → rules_no-unnecessary-combination.md.c493c675.js} +4 -5
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.c493c675.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-unnecessary-duplication.md.3a99556b.js → rules_no-unnecessary-duplication.md.73a858d8.js} +11 -12
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.73a858d8.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-useless-methods.md.e13dc29f.js → rules_no-useless-methods.md.8043425b.js} +4 -5
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.8043425b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_no-watch.md.72ac4d86.js → rules_no-watch.md.c78d9c95.js} +9 -10
- package/docs/.vitepress/dist/assets/rules_no-watch.md.c78d9c95.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_prefer-sample-over-forward-with-mapping.md.e5a7f363.js → rules_prefer-sample-over-forward-with-mapping.md.b5f139ea.js} +8 -9
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.b5f139ea.lean.js +1 -0
- package/docs/.vitepress/dist/assets/{rules_prefer-useUnit.md.2d27cecd.js → rules_prefer-useUnit.md.e6b1721b.js} +5 -6
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.e6b1721b.lean.js +1 -0
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.142370fb.js +20 -0
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.142370fb.lean.js +1 -0
- package/docs/.vitepress/dist/assets/shared_install.md.71ecb8f5.js +1 -0
- package/docs/.vitepress/dist/assets/shared_install.md.71ecb8f5.lean.js +1 -0
- package/docs/.vitepress/dist/assets/style.d567007a.css +1 -0
- package/docs/.vitepress/dist/changelog.html +26 -0
- package/docs/.vitepress/dist/comet-192.png +0 -0
- package/docs/.vitepress/dist/comet-512.png +0 -0
- package/docs/.vitepress/dist/comet.svg +228 -0
- package/docs/.vitepress/dist/favicon.ico +0 -0
- package/docs/.vitepress/dist/hashmap.json +1 -1
- package/docs/.vitepress/dist/index.html +16 -10
- package/docs/.vitepress/dist/manifest.webmanifest +6 -0
- package/docs/.vitepress/dist/presets/__future.html +16 -10
- package/docs/.vitepress/dist/presets/__index.html +16 -10
- package/docs/.vitepress/dist/presets/__list.html +16 -10
- package/docs/.vitepress/dist/presets/__patronum.html +16 -10
- package/docs/.vitepress/dist/presets/__react.html +16 -10
- package/docs/.vitepress/dist/presets/__recommended.html +16 -10
- package/docs/.vitepress/dist/presets/__scope.html +16 -10
- package/docs/.vitepress/dist/presets/future.html +19 -10
- package/docs/.vitepress/dist/presets/index.html +16 -10
- package/docs/.vitepress/dist/presets/patronum.html +19 -10
- package/docs/.vitepress/dist/presets/react.html +19 -10
- package/docs/.vitepress/dist/presets/recommended.html +19 -10
- package/docs/.vitepress/dist/presets/scope.html +19 -10
- package/docs/.vitepress/dist/rules/__index.html +16 -10
- package/docs/.vitepress/dist/rules/__list.html +16 -10
- package/docs/.vitepress/dist/rules/enforce-effect-naming-convention.html +22 -13
- package/docs/.vitepress/dist/rules/enforce-gate-naming-convention.html +22 -13
- package/docs/.vitepress/dist/rules/enforce-store-naming-convention.html +22 -20
- package/docs/.vitepress/dist/rules/index.html +16 -10
- package/docs/.vitepress/dist/rules/keep-options-order.html +18 -13
- package/docs/.vitepress/dist/rules/mandatory-scope-binding.html +21 -16
- package/docs/.vitepress/dist/rules/no-ambiguity-target.html +18 -13
- package/docs/.vitepress/dist/rules/no-duplicate-on.html +22 -17
- package/docs/.vitepress/dist/rules/no-forward.html +21 -17
- package/docs/.vitepress/dist/rules/no-getState.html +21 -16
- package/docs/.vitepress/dist/rules/no-guard.html +22 -18
- package/docs/.vitepress/dist/rules/no-patronum-debug.html +22 -18
- package/docs/.vitepress/dist/rules/no-unnecessary-combination.html +19 -14
- package/docs/.vitepress/dist/rules/no-unnecessary-duplication.html +26 -21
- package/docs/.vitepress/dist/rules/no-useless-methods.html +19 -14
- package/docs/.vitepress/dist/rules/no-watch.html +24 -19
- package/docs/.vitepress/dist/rules/prefer-sample-over-forward-with-mapping.html +23 -18
- package/docs/.vitepress/dist/rules/prefer-useUnit.html +20 -15
- package/docs/.vitepress/dist/rules/strict-effect-handlers.html +29 -26
- package/docs/.vitepress/dist/shared/install.html +26 -0
- package/docs/.vitepress/theme/custom.css +2 -0
- package/package.json +3 -2
- package/utils/get-corrected-store-name.js +31 -7
- package/utils/naming.js +1 -1
- package/docs/.vitepress/dist/assets/app.c5be1f68.js +0 -7
- package/docs/.vitepress/dist/assets/index.md.79361962.js +0 -1
- package/docs/.vitepress/dist/assets/index.md.79361962.lean.js +0 -1
- package/docs/.vitepress/dist/assets/inter-cyrillic-ext.0877b0d9.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-cyrillic.f8750142.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-greek-ext.3e6f6728.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-greek.117e1956.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-latin-ext.7cc429bc.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-latin.4fe6132f.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-vietnamese.2c644a25.woff2 +0 -0
- package/docs/.vitepress/dist/assets/presets___future.md.6542932d.js +0 -1
- package/docs/.vitepress/dist/assets/presets___future.md.6542932d.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___index.md.af77aa24.js +0 -1
- package/docs/.vitepress/dist/assets/presets___index.md.af77aa24.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___list.md.86dea8af.js +0 -1
- package/docs/.vitepress/dist/assets/presets___list.md.86dea8af.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___patronum.md.9f3ad5fe.js +0 -1
- package/docs/.vitepress/dist/assets/presets___patronum.md.9f3ad5fe.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___react.md.dc2cc31a.js +0 -1
- package/docs/.vitepress/dist/assets/presets___react.md.dc2cc31a.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___recommended.md.af826424.js +0 -1
- package/docs/.vitepress/dist/assets/presets___recommended.md.af826424.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets___scope.md.e5dd9837.js +0 -1
- package/docs/.vitepress/dist/assets/presets___scope.md.e5dd9837.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_future.md.2962dd38.js +0 -1
- package/docs/.vitepress/dist/assets/presets_future.md.2962dd38.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_index.md.c3c40451.js +0 -1
- package/docs/.vitepress/dist/assets/presets_index.md.c3c40451.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_patronum.md.58445698.js +0 -1
- package/docs/.vitepress/dist/assets/presets_patronum.md.58445698.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_react.md.fda31c90.js +0 -1
- package/docs/.vitepress/dist/assets/presets_react.md.fda31c90.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_recommended.md.396d0c01.js +0 -1
- package/docs/.vitepress/dist/assets/presets_recommended.md.396d0c01.lean.js +0 -1
- package/docs/.vitepress/dist/assets/presets_scope.md.55da3541.js +0 -1
- package/docs/.vitepress/dist/assets/presets_scope.md.55da3541.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules___index.md.c943fc87.js +0 -1
- package/docs/.vitepress/dist/assets/rules___index.md.c943fc87.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules___list.md.ba316f20.js +0 -1
- package/docs/.vitepress/dist/assets/rules___list.md.ba316f20.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.09e5af2c.js +0 -6
- package/docs/.vitepress/dist/assets/rules_enforce-effect-naming-convention.md.09e5af2c.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.5f3af41a.js +0 -6
- package/docs/.vitepress/dist/assets/rules_enforce-gate-naming-convention.md.5f3af41a.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_enforce-store-naming-convention.md.db33b9cb.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_index.md.3e915bb2.js +0 -1
- package/docs/.vitepress/dist/assets/rules_index.md.3e915bb2.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_keep-options-order.md.5345093b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.aff04a66.js +0 -14
- package/docs/.vitepress/dist/assets/rules_mandatory-scope-binding.md.aff04a66.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-ambiguity-target.md.7fde769b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.09525e1d.js +0 -11
- package/docs/.vitepress/dist/assets/rules_no-duplicate-on.md.09525e1d.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-forward.md.2becbf92.js +0 -11
- package/docs/.vitepress/dist/assets/rules_no-forward.md.2becbf92.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-getState.md.665d0467.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-guard.md.5056c7b6.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.19f444fb.js +0 -14
- package/docs/.vitepress/dist/assets/rules_no-patronum-debug.md.19f444fb.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-combination.md.e7221074.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-unnecessary-duplication.md.3a99556b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-useless-methods.md.e13dc29f.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_no-watch.md.72ac4d86.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_prefer-sample-over-forward-with-mapping.md.e5a7f363.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_prefer-useUnit.md.2d27cecd.lean.js +0 -1
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.2f8965e2.js +0 -23
- package/docs/.vitepress/dist/assets/rules_strict-effect-handlers.md.2f8965e2.lean.js +0 -1
- package/docs/.vitepress/dist/assets/style.9e7714f0.css +0 -1
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,
|
|
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
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
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
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
5
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
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;">store1</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#A6ACCD;">store2</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> (</span><span style="color:#89DDFF;">{</span></span>
|
|
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
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
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
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
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
12
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
13
13
|
<span class="line"></span>
|
|
14
|
-
<span class="line"><span style="color:#676E95;">//
|
|
14
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 better</span></span>
|
|
15
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
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
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
18
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">filter</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $filter</span><span style="color:#89DDFF;">,</span></span>
|
|
19
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span
|
|
20
|
-
<span class="line"></span></code></pre></div>`,3),e=[p];function c(t,r,D,y,A,F){return a(),n("div",null,e)}const d=s(l,[["render",c]]);export{i as __pageData,d as default};
|
|
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};
|
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,
|
|
1
|
+
import{_ as s,c as n,o as a,Q as l}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"effector/no-unnecessary-duplication","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-unnecessary-duplication.md","lastUpdated":1668424187000}'),o={name:"rules/no-unnecessary-duplication.md"},p=l(`<h1 id="effector-no-unnecessary-duplication" tabindex="-1">effector/no-unnecessary-duplication <a class="header-anchor" href="#effector-no-unnecessary-duplication" aria-label="Permalink to "effector/no-unnecessary-duplication""></a></h1><p>Same <code>clock</code>/<code>source</code> in <code>sample</code> and <code>guard</code> don't make sense, any of these fields can be omitted in this 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:#C792EA;">const</span><span style="color:#A6ACCD;"> $data </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
2
|
<span class="line"></span>
|
|
3
|
-
<span class="line"><span style="color:#676E95;">//
|
|
3
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 can be simplified</span></span>
|
|
4
4
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> target1 </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
5
5
|
<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>
|
|
6
6
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">,</span></span>
|
|
7
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
8
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
7
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
8
|
+
<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:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
9
9
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
10
10
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
11
11
|
<span class="line"></span>
|
|
12
|
-
<span class="line"><span style="color:#676E95;">//
|
|
12
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 better</span></span>
|
|
13
13
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> target2 </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
14
14
|
<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>
|
|
15
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
16
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
15
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
16
|
+
<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:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
17
17
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
18
18
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
19
19
|
<span class="line"></span>
|
|
20
|
-
<span class="line"><span style="color:#676E95;">//
|
|
20
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 also nice solution</span></span>
|
|
21
21
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> target3 </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
22
22
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $data</span><span style="color:#89DDFF;">,</span></span>
|
|
23
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
24
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
23
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">fn</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:#89DDFF;">{</span></span>
|
|
24
|
+
<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:#A6ACCD;">data</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">;</span></span>
|
|
25
25
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">},</span></span>
|
|
26
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span
|
|
27
|
-
<span class="line"></span></code></pre></div>`,3),e=[o];function c(t,r,D,y,F,A){return a(),n("div",null,e)}const d=s(p,[["render",c]]);export{i as __pageData,d as default};
|
|
26
|
+
<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,y,D,F,i){return a(),n("div",null,e)}const d=s(o,[["render",t]]);export{C as __pageData,d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as n,o as a,Q as l}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"effector/no-unnecessary-duplication","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-unnecessary-duplication.md","lastUpdated":1668424187000}'),o={name:"rules/no-unnecessary-duplication.md"},p=l("",3),e=[p];function t(c,r,y,D,F,i){return a(),n("div",null,e)}const d=s(o,[["render",t]]);export{C as __pageData,d as default};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import{_ as s,c as a,o as n
|
|
1
|
+
import{_ as s,c as a,o,Q as n}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-useless-methods","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-useless-methods.md","lastUpdated":1668424187000}'),e={name:"rules/no-useless-methods.md"},l=n(`<h1 id="effector-no-useless-methods" tabindex="-1">effector/no-useless-methods <a class="header-anchor" href="#effector-no-useless-methods" aria-label="Permalink to "effector/no-useless-methods""></a></h1><p>Call of <code>gaurd</code>/<code>sample</code> without <code>target</code> or variable assignment is useless. 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 omitted</span></span>
|
|
2
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;">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:#89DDFF;">;</span></span>
|
|
3
3
|
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;">//
|
|
4
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 makes sense</span></span>
|
|
5
5
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> target1 </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;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
6
|
<span class="line"></span>
|
|
7
|
-
<span class="line"><span style="color:#676E95;">//
|
|
8
|
-
<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;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> target2 </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span
|
|
9
|
-
<span class="line"></span></code></pre></div>`,3),p=[l];function t(c,r,D,y,F,A){return n(),a("div",null,p)}const i=s(e,[["render",t]]);export{d as __pageData,i as default};
|
|
7
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 make sense too</span></span>
|
|
8
|
+
<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;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> target2 </span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,3),p=[l];function t(c,r,D,y,F,A){return o(),a("div",null,p)}const d=s(e,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as a,o,Q as n}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/no-useless-methods","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-useless-methods.md","lastUpdated":1668424187000}'),e={name:"rules/no-useless-methods.md"},l=n("",3),p=[l];function t(c,r,D,y,F,A){return o(),a("div",null,p)}const d=s(e,[["render",t]]);export{i as __pageData,d as default};
|
package/docs/.vitepress/dist/assets/{rules_no-watch.md.72ac4d86.js → rules_no-watch.md.c78d9c95.js}
RENAMED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{_ as s,c as
|
|
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-watch","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-watch.md","lastUpdated":1668424187000}'),p={name:"rules/no-watch.md"},o=l(`<h1 id="effector-no-watch" tabindex="-1">effector/no-watch <a class="header-anchor" href="#effector-no-watch" aria-label="Permalink to "effector/no-watch""></a></h1><p>Method <code>.watch</code> leads to imperative code. Try replacing it with operator (<code>sample</code>) or use the <code>target</code> parameter of the operator.</p><blockquote><p>Caution! This rule only works on projects using TypeScript.</p></blockquote><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;"> myFx </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>
|
|
2
2
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> myEvent </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
3
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> $awesome </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;">;</span></span>
|
|
4
4
|
<span class="line"></span>
|
|
5
|
-
<span class="line"><span style="color:#676E95;">//
|
|
5
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 good solutions</span></span>
|
|
6
6
|
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
7
7
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myFx</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">finally</span><span style="color:#89DDFF;">,</span></span>
|
|
8
8
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myEvent</span><span style="color:#89DDFF;">,</span></span>
|
|
9
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span></span>
|
|
9
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
10
10
|
<span class="line"></span>
|
|
11
11
|
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
12
12
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myEvent</span><span style="color:#89DDFF;">,</span></span>
|
|
13
13
|
<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>
|
|
14
14
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myFx</span><span style="color:#89DDFF;">,</span></span>
|
|
15
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span></span>
|
|
15
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
16
16
|
<span class="line"></span>
|
|
17
17
|
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
18
18
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">clock</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> $awesome</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">updates</span><span style="color:#89DDFF;">,</span></span>
|
|
@@ -20,16 +20,15 @@ import{_ as s,c as n,o as a,b as l}from"./app.c5be1f68.js";const i=JSON.parse('{
|
|
|
20
20
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> myEvent</span><span style="color:#89DDFF;">,</span></span>
|
|
21
21
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
22
22
|
<span class="line"></span>
|
|
23
|
-
<span class="line"><span style="color:#676E95;">//
|
|
23
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 bad solutions</span></span>
|
|
24
24
|
<span class="line"><span style="color:#A6ACCD;">myFx</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">finally</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">watch</span><span style="color:#A6ACCD;">(myEvent)</span><span style="color:#89DDFF;">;</span></span>
|
|
25
25
|
<span class="line"></span>
|
|
26
|
-
<span class="line"><span style="color:#A6ACCD;">myEvent</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">watch</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">payload</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>
|
|
27
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">if</span><span style="color:#F07178;"> (</span><span style="color:#82AAFF;">Boolean</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">payload</span><span style="color:#F07178;">)) </span><span style="color:#89DDFF;">{</span></span>
|
|
26
|
+
<span class="line"><span style="color:#A6ACCD;">myEvent</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">watch</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">payload</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>
|
|
27
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#F07178;"> (</span><span style="color:#82AAFF;">Boolean</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">payload</span><span style="color:#F07178;">)) </span><span style="color:#89DDFF;">{</span></span>
|
|
28
28
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">myFx</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">payload</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
29
29
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">}</span></span>
|
|
30
30
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
31
31
|
<span class="line"></span>
|
|
32
|
-
<span class="line"><span style="color:#A6ACCD;">$awesome</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">updates</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">watch</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">data</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
32
|
+
<span class="line"><span style="color:#A6ACCD;">$awesome</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">updates</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">watch</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;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
33
33
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#82AAFF;">myEvent</span><span style="color:#F07178;">(</span><span style="color:#82AAFF;">identity</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">data</span><span style="color:#F07178;">))</span><span style="color:#89DDFF;">;</span></span>
|
|
34
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span
|
|
35
|
-
<span class="line"></span></code></pre></div>`,4),e=[o];function t(c,r,y,D,F,A){return a(),n("div",null,e)}const d=s(p,[["render",t]]);export{i as __pageData,d as default};
|
|
34
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div>`,4),e=[o];function t(c,r,y,D,F,A){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -0,0 +1 @@
|
|
|
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-watch","description":"","frontmatter":{},"headers":[],"relativePath":"rules/no-watch.md","lastUpdated":1668424187000}'),p={name:"rules/no-watch.md"},o=l("",4),e=[o];function t(c,r,y,D,F,A){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{i as __pageData,d as default};
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import{_ as s,c as
|
|
1
|
+
import{_ as s,c as a,o as n,Q as p}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/prefer-sample-over-forward-with-mapping","description":"","frontmatter":{},"headers":[],"relativePath":"rules/prefer-sample-over-forward-with-mapping.md","lastUpdated":1668424187000}'),l={name:"rules/prefer-sample-over-forward-with-mapping.md"},o=p(`<h1 id="effector-prefer-sample-over-forward-with-mapping" tabindex="-1">effector/prefer-sample-over-forward-with-mapping <a class="header-anchor" href="#effector-prefer-sample-over-forward-with-mapping" aria-label="Permalink to "effector/prefer-sample-over-forward-with-mapping""></a></h1><p>Prefer <code>sample</code> over <code>forward</code> with <code>.map</code>/<code>.prepend</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:#C792EA;">const</span><span style="color:#A6ACCD;"> eventOne </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
2
|
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> eventTwo </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
3
|
<span class="line"></span>
|
|
4
|
-
<span class="line"><span style="color:#676E95;">//
|
|
4
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 looks weird</span></span>
|
|
5
5
|
<span class="line"><span style="color:#82AAFF;">forward</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
6
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventOne</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;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span></span>
|
|
6
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventOne</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;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span></span>
|
|
7
7
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventTwo</span><span style="color:#89DDFF;">,</span></span>
|
|
8
8
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
9
9
|
<span class="line"></span>
|
|
10
|
-
<span class="line"><span style="color:#676E95;">//
|
|
10
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👎 weird too</span></span>
|
|
11
11
|
<span class="line"><span style="color:#82AAFF;">forward</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
12
12
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">from</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventOne</span><span style="color:#89DDFF;">,</span></span>
|
|
13
|
-
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventTwo</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">prepend</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span></span>
|
|
13
|
+
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">to</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventTwo</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">prepend</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length)</span><span style="color:#89DDFF;">,</span></span>
|
|
14
14
|
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
15
15
|
<span class="line"></span>
|
|
16
|
-
<span class="line"><span style="color:#676E95;">//
|
|
16
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 better</span></span>
|
|
17
17
|
<span class="line"><span style="color:#82AAFF;">sample</span><span style="color:#A6ACCD;">(</span><span style="color:#89DDFF;">{</span></span>
|
|
18
18
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventOne</span><span style="color:#89DDFF;">,</span></span>
|
|
19
|
-
<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;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</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:#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;">items</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">=></span><span style="color:#A6ACCD;"> items</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">length</span><span style="color:#89DDFF;">,</span></span>
|
|
20
20
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#F07178;">target</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> eventTwo</span><span style="color:#89DDFF;">,</span></span>
|
|
21
|
-
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
22
|
-
<span class="line"></span></code></pre></div><p>\u{1F4A1} Tip: It could be superseded by <a href="/rules/no-forward.html">no-forward</a>.</p>`,4),e=[o];function r(t,c,D,A,y,F){return a(),n("div",null,e)}const d=s(l,[["render",r]]);export{i as __pageData,d as default};
|
|
21
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div><p>💡 Tip: It could be superseded by <a href="/rules/no-forward.html">no-forward</a>.</p>`,4),e=[o];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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as a,o as n,Q as p}from"./chunks/framework.02595b67.js";const i=JSON.parse('{"title":"effector/prefer-sample-over-forward-with-mapping","description":"","frontmatter":{},"headers":[],"relativePath":"rules/prefer-sample-over-forward-with-mapping.md","lastUpdated":1668424187000}'),l={name:"rules/prefer-sample-over-forward-with-mapping.md"},o=p("",4),e=[o];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,10 +1,10 @@
|
|
|
1
|
-
import{_ as s,c as n,o as a,
|
|
1
|
+
import{_ as s,c as n,o as a,Q as l}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"effector/prefer-useUnit","description":"","frontmatter":{},"headers":[],"relativePath":"rules/prefer-useUnit.md","lastUpdated":1668424187000}'),o={name:"rules/prefer-useUnit.md"},p=l(`<h1 id="effector-prefer-useunit" tabindex="-1">effector/prefer-useUnit <a class="header-anchor" href="#effector-prefer-useunit" aria-label="Permalink to "effector/prefer-useUnit""></a></h1><p><code>useUnit</code> is a brand-new hook which allows you to bind stores, events, and effects to React render cycle.</p><p>It is preferable than <code>useStore</code>/<code>useEvents</code>:</p><ul><li>it enables store updates batching, which can significantly increase React performance</li><li>it does not have name collision with future React <code>useEvent</code> internal hook</li><li>it has more explicit naming, old <code>useEvent</code> accepts events and effect, so its name is a bit implicit, new <code>useUnit</code> accepts any unit</li></ul><p>You can replace <code>useStore</code>/<code>useEvent</code> by <code>useUnit</code> as is or replace all old hooks with only one <code>useUnit</code></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:#676E95;font-style:italic;">// 👎 old approach</span></span>
|
|
2
2
|
<span class="line"><span style="color:#C792EA;">function</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">OldComponent</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
3
3
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">value</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">useStore</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">$value</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
4
4
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">eventFn</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">useEvent</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">event</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
5
5
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">effectFn</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">=</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">useEvent</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">effectFx</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
6
6
|
<span class="line"></span>
|
|
7
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> (</span></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>
|
|
8
8
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;"><></span></span>
|
|
9
9
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">h1</span><span style="color:#89DDFF;">>{</span><span style="color:#A6ACCD;">value</span><span style="color:#89DDFF;">}</</span><span style="color:#F07178;">h1</span><span style="color:#89DDFF;">></span></span>
|
|
10
10
|
<span class="line"><span style="color:#A6ACCD;"> </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;">eventFn</span><span style="color:#89DDFF;">}></span><span style="color:#A6ACCD;">Call event</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;">></span></span>
|
|
@@ -13,16 +13,15 @@ import{_ as s,c as n,o as a,b as l}from"./app.c5be1f68.js";const C=JSON.parse('{
|
|
|
13
13
|
<span class="line"><span style="color:#F07178;"> )</span><span style="color:#89DDFF;">;</span></span>
|
|
14
14
|
<span class="line"><span style="color:#89DDFF;">}</span></span>
|
|
15
15
|
<span class="line"></span>
|
|
16
|
-
<span class="line"><span style="color:#676E95;">//
|
|
16
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 new approach</span></span>
|
|
17
17
|
<span class="line"><span style="color:#C792EA;">function</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">NewComponent</span><span style="color:#89DDFF;">()</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
|
|
18
18
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#C792EA;">const</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">value</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">eventFn</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">effectFn</span><span style="color:#89DDFF;">]</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;">$value</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">event</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#A6ACCD;">effectFx</span><span style="color:#F07178;">)</span><span style="color:#89DDFF;">;</span></span>
|
|
19
19
|
<span class="line"></span>
|
|
20
|
-
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;">return</span><span style="color:#F07178;"> (</span></span>
|
|
20
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#F07178;"> (</span></span>
|
|
21
21
|
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;"><></span></span>
|
|
22
22
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"><</span><span style="color:#F07178;">h1</span><span style="color:#89DDFF;">>{</span><span style="color:#A6ACCD;">value</span><span style="color:#89DDFF;">}</</span><span style="color:#F07178;">h1</span><span style="color:#89DDFF;">></span></span>
|
|
23
23
|
<span class="line"><span style="color:#A6ACCD;"> </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;">eventFn</span><span style="color:#89DDFF;">}></span><span style="color:#A6ACCD;">Call event</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;">></span></span>
|
|
24
24
|
<span class="line"><span style="color:#A6ACCD;"> </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;">effectFn</span><span style="color:#89DDFF;">}></span><span style="color:#A6ACCD;">Call effect</span><span style="color:#89DDFF;"></</span><span style="color:#F07178;">button</span><span style="color:#89DDFF;">></span></span>
|
|
25
25
|
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;"></></span></span>
|
|
26
26
|
<span class="line"><span style="color:#F07178;"> )</span><span style="color:#89DDFF;">;</span></span>
|
|
27
|
-
<span class="line"><span style="color:#89DDFF;">}</span></span
|
|
28
|
-
<span class="line"></span></code></pre></div>`,6),e=[p];function t(c,r,F,y,D,i){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default};
|
|
27
|
+
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div>`,6),e=[p];function t(c,r,F,y,D,i){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as n,o as a,Q as l}from"./chunks/framework.02595b67.js";const C=JSON.parse('{"title":"effector/prefer-useUnit","description":"","frontmatter":{},"headers":[],"relativePath":"rules/prefer-useUnit.md","lastUpdated":1668424187000}'),o={name:"rules/prefer-useUnit.md"},p=l("",6),e=[p];function t(c,r,F,y,D,i){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const f=JSON.parse('{"title":"effector/strict-effect-handlers","description":"","frontmatter":{},"headers":[],"relativePath":"rules/strict-effect-handlers.md","lastUpdated":1668424187000}'),o={name:"rules/strict-effect-handlers.md"},e=l(`<h1 id="effector-strict-effect-handlers" tabindex="-1">effector/strict-effect-handlers <a class="header-anchor" href="#effector-strict-effect-handlers" aria-label="Permalink to "effector/strict-effect-handlers""></a></h1><p><a href="https://effector.dev/docs/api/effector/scope#imperative-effects-calls-with-scope" target="_blank" rel="noreferrer">Related documentation</a></p><p>When effect calls another effects then it should call only effects, not common asynchronous functions and effect calls should have <code>await</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;">// 👍 effect without inner effects:</span></span>
|
|
2
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> delayFx </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:#C792EA;">async</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>
|
|
3
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">rs</span><span style="color:#89DDFF;">)</span><span style="color:#F07178;"> </span><span style="color:#C792EA;">=></span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">setTimeout</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">rs</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">80</span><span style="color:#F07178;">))</span><span style="color:#89DDFF;">;</span></span>
|
|
4
|
+
<span class="line"><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">)</span><span style="color:#89DDFF;">;</span></span></code></pre></div><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;"> authUserFx </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>
|
|
5
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> sendMessageFx </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>
|
|
6
|
+
<span class="line"></span>
|
|
7
|
+
<span class="line"><span style="color:#676E95;font-style:italic;">// 👍 effect with inner effects</span></span>
|
|
8
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> sendWithAuthFx </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:#C792EA;">async</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>
|
|
9
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">authUserFx</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
10
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">delayFx</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
11
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">sendMessageFx</span><span style="color:#F07178;">()</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></code></pre></div><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;">// 👎 effect with inner effects and common async functions</span></span>
|
|
13
|
+
<span class="line"></span>
|
|
14
|
+
<span class="line"><span style="color:#C792EA;">const</span><span style="color:#A6ACCD;"> sendWithAuthFx </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:#C792EA;">async</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>
|
|
15
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">authUserFx</span><span style="color:#F07178;">()</span><span style="color:#89DDFF;">;</span></span>
|
|
16
|
+
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;font-style:italic;">//WRONG! wrap that in effect</span></span>
|
|
17
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#89DDFF;">new</span><span style="color:#F07178;"> </span><span style="color:#FFCB6B;">Promise</span><span style="color:#F07178;">(</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">rs</span><span style="color:#89DDFF;">)</span><span style="color:#F07178;"> </span><span style="color:#C792EA;">=></span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">setTimeout</span><span style="color:#F07178;">(</span><span style="color:#A6ACCD;">rs</span><span style="color:#89DDFF;">,</span><span style="color:#F07178;"> </span><span style="color:#F78C6C;">80</span><span style="color:#F07178;">))</span><span style="color:#89DDFF;">;</span></span>
|
|
18
|
+
<span class="line"><span style="color:#89DDFF;"> </span><span style="color:#676E95;font-style:italic;">//context lost</span></span>
|
|
19
|
+
<span class="line"><span style="color:#F07178;"> </span><span style="color:#89DDFF;font-style:italic;">await</span><span style="color:#F07178;"> </span><span style="color:#82AAFF;">sendMessageFx</span><span style="color:#F07178;">()</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><p>So, any effect might either call another effects or perform some asynchronous computations but not both.</p>`,7),p=[e];function t(c,r,y,F,i,D){return n(),a("div",null,p)}const C=s(o,[["render",t]]);export{f as __pageData,C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const f=JSON.parse('{"title":"effector/strict-effect-handlers","description":"","frontmatter":{},"headers":[],"relativePath":"rules/strict-effect-handlers.md","lastUpdated":1668424187000}'),o={name:"rules/strict-effect-handlers.md"},e=l("",7),p=[e];function t(c,r,y,F,i,D){return n(),a("div",null,p)}const C=s(o,[["render",t]]);export{f as __pageData,C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"shared/install.md","lastUpdated":1668497371000}'),e={name:"shared/install.md"},t=l('<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>',9),o=[t];function p(c,i,r,d,C,y){return n(),a("div",null,o)}const A=s(e,[["render",p]]);export{u as __pageData,A as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as s,c as a,o as n,Q as l}from"./chunks/framework.02595b67.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"shared/install.md","lastUpdated":1668497371000}'),e={name:"shared/install.md"},t=l("",9),o=[t];function p(c,i,r,d,C,y){return n(),a("div",null,o)}const A=s(e,[["render",p]]);export{u as __pageData,A as default};
|