|
536 | 536 | <span class="token keyword">continue</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token function">unset</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">notification</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">,</span> |
537 | 537 | <span class="token literal-property property">discard</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> |
538 | 538 | <span class="token punctuation">}</span> |
539 | | -<span class="token punctuation">]</span></code></pre><div style="background-color:#FAFAFA;border-left:4px solid #f44336;border-radius:3px;padding:10px 15px;color:#666"><p>The <code>discard</code> path must always be present when using debounce, even if you don’t need to run any actions when debounce is abandoned.</p></div><h3>equals<a href="#factories-flow-control-factories-equals">∞</a><span id="factories-flow-control-factories-equals"> </span></h3><p>Branch execution based on a value comparison:</p><pre><code class="language-js"><span class="token function">equals</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.role</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
| 539 | +<span class="token punctuation">]</span></code></pre><div style="background-color:#FAFAFA;border-left:4px solid #f44336;border-radius:3px;padding:10px 15px;color:#666"><p>The <code>discard</code> path must always be present when using debounce, even if you don’t need to run any actions when debounce is abandoned.</p></div><h3>equals<a href="#factories-flow-control-factories-equals">∞</a><span id="factories-flow-control-factories-equals"> </span></h3><p>Branch execution based on a value comparison:</p><pre><code class="language-js"><span class="token punctuation">;</span><span class="token punctuation">(</span><span class="token function">equals</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.role</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
540 | 540 | <span class="token punctuation">{</span> |
541 | 541 | <span class="token literal-property property">admin</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>loadAdminPage<span class="token punctuation">]</span><span class="token punctuation">,</span> |
542 | 542 | <span class="token literal-property property">user</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>loadUserPage<span class="token punctuation">]</span><span class="token punctuation">,</span> |
543 | 543 | <span class="token literal-property property">otherwise</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>redirectToLogin<span class="token punctuation">]</span> |
544 | | - <span class="token punctuation">}</span></code></pre><h3>wait<a href="#factories-flow-control-factories-wait">∞</a><span id="factories-flow-control-factories-wait"> </span></h3><p>Pause execution for a specified time:</p><pre><code class="language-js"><span class="token comment">// Simple waiting</span> |
| 544 | + <span class="token punctuation">}</span><span class="token punctuation">)</span></code></pre><h3>wait<a href="#factories-flow-control-factories-wait">∞</a><span id="factories-flow-control-factories-wait"> </span></h3><p>Pause execution for a specified time:</p><pre><code class="language-js"><span class="token comment">// Simple waiting</span> |
545 | 545 | <span class="token punctuation">;</span><span class="token punctuation">[</span><span class="token function">wait</span><span class="token punctuation">(</span><span class="token number">500</span><span class="token punctuation">)</span><span class="token punctuation">,</span> actions<span class="token punctuation">.</span>afterWaiting<span class="token punctuation">]</span> |
546 | 546 |
|
547 | 547 | <span class="token comment">// Within parallel execution</span> |
|
554 | 554 | <span class="token punctuation">]</span><span class="token punctuation">,</span> |
555 | 555 | actions<span class="token punctuation">.</span>runInParallel |
556 | 556 | <span class="token punctuation">]</span><span class="token punctuation">)</span></code></pre><h3>when<a href="#factories-flow-control-factories-when">∞</a><span id="factories-flow-control-factories-when"> </span></h3><p>Conditionally choose a path based on a value or predicate:</p><pre><code class="language-js"><span class="token comment">// With direct value</span> |
557 | | -<span class="token function">when</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.isLoggedIn</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
| 557 | +<span class="token punctuation">;</span><span class="token punctuation">(</span><span class="token function">when</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.isLoggedIn</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
558 | 558 | <span class="token punctuation">{</span> |
559 | 559 | <span class="token boolean">true</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>redirectToDashboard<span class="token punctuation">]</span><span class="token punctuation">,</span> |
560 | 560 | <span class="token boolean">false</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>showLoginForm<span class="token punctuation">]</span> |
561 | | - <span class="token punctuation">}</span> |
| 561 | + <span class="token punctuation">}</span><span class="token punctuation">)</span> |
562 | 562 |
|
563 | 563 | <span class="token comment">// With custom predicate</span> |
564 | | -<span class="token function">when</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.role</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">role</span><span class="token punctuation">)</span> <span class="token operator">=></span> role <span class="token operator">===</span> <span class="token string">'admin'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
| 564 | +<span class="token punctuation">;</span><span class="token punctuation">(</span><span class="token function">when</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">user.role</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">role</span><span class="token punctuation">)</span> <span class="token operator">=></span> role <span class="token operator">===</span> <span class="token string">'admin'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
565 | 565 | <span class="token punctuation">{</span> |
566 | 566 | <span class="token boolean">true</span><span class="token operator">:</span> <span class="token punctuation">[</span>actions<span class="token punctuation">.</span>showAdminTools<span class="token punctuation">]</span><span class="token punctuation">,</span> |
567 | 567 | <span class="token boolean">false</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> |
568 | | - <span class="token punctuation">}</span> |
| 568 | + <span class="token punctuation">}</span><span class="token punctuation">)</span> |
569 | 569 |
|
570 | 570 | <span class="token comment">// With multiple arguments</span> |
571 | | -<span class="token function">when</span><span class="token punctuation">(</span> |
| 571 | +<span class="token punctuation">;</span><span class="token punctuation">(</span><span class="token function">when</span><span class="token punctuation">(</span> |
572 | 572 | state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">inputValue</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> |
573 | 573 | state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">minLength</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> |
574 | 574 | <span class="token punctuation">(</span><span class="token parameter">value<span class="token punctuation">,</span> minLength</span><span class="token punctuation">)</span> <span class="token operator">=></span> value<span class="token punctuation">.</span>length <span class="token operator">>=</span> minLength |
575 | 575 | <span class="token punctuation">)</span><span class="token punctuation">,</span> |
576 | 576 | <span class="token punctuation">{</span> |
577 | 577 | <span class="token boolean">true</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token function">set</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">isValid</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">,</span> |
578 | 578 | <span class="token boolean">false</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token function">set</span><span class="token punctuation">(</span>state<span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">isValid</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">]</span> |
579 | | - <span class="token punctuation">}</span></code></pre><h2>Sequence and Parallel<a href="#factories-sequence-and-parallel">∞</a><span id="factories-sequence-and-parallel"> </span></h2><p>These factories help compose sequences and run actions in parallel:</p><pre><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> sequence<span class="token punctuation">,</span> parallel <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'cerebral/factories'</span> |
| 579 | + <span class="token punctuation">}</span><span class="token punctuation">)</span></code></pre><h2>Sequence and Parallel<a href="#factories-sequence-and-parallel">∞</a><span id="factories-sequence-and-parallel"> </span></h2><p>These factories help compose sequences and run actions in parallel:</p><pre><code class="language-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> sequence<span class="token punctuation">,</span> parallel <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'cerebral/factories'</span> |
580 | 580 |
|
581 | 581 | <span class="token comment">// Create a named sequence</span> |
582 | 582 | <span class="token keyword">export</span> <span class="token keyword">const</span> mySequence <span class="token operator">=</span> <span class="token function">sequence</span><span class="token punctuation">(</span><span class="token string">'My Sequence'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span> |
|
0 commit comments