Skip to content

Commit 133bd10

Browse files
committed
1 parent 18119c4 commit 133bd10

10 files changed

Lines changed: 18 additions & 18 deletions

File tree

docs-text.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/advanced/typescript.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@
483483
" href="/docs/resources/index.html#utilities-state-forms">state-forms</a><ul><li><a class="nav_toggle-label nav_item-name nav_sublink
484484
nav_childless" href="/docs/resources/index.html#utilities-state-forms-description">Description</a></li></ul></li><li><input id="/docs/resources/index.html#utilities-@cerebral/storage" class="nav_toggle" type="checkbox"/><a class="nav_toggle-label nav_item-name nav_sublink
485485
" href="/docs/resources/index.html#utilities-@cerebral/storage">@cerebral/storage</a><ul><li><a class="nav_toggle-label nav_item-name nav_sublink
486-
nav_childless" href="/docs/resources/index.html#utilities-@cerebral/storage-description-(storage)">Description (storage)</a></li></ul></li></ul></li></ul></li></ul></div><div class="docs-doc"><div class="docs-doc-content"><h1 id="typescript-with-cerebral">TypeScript with Cerebral</h1><div style="background-color:#FAFAFA;border-left:4px solid #f44336;border-radius:3px;padding:10px 15px;color:#666"><p><strong>IMPORTANT</strong>: Even though Cerebral fully supports TypeScript, you might also want to consider Cerebral’s successor, <a href="https://overmindjs.org" target="new">Overmind</a>, which was built from the ground up with TypeScript support and modern JavaScript features.</p></div><p>Cerebral provides comprehensive type safety for your application. You can add typing gradually, so let’s take this step by step. You can stop at any level when you feel you have enough type safety for your needs.</p><h2>Required: Setting Up Proxy Support<a href="#typescript-with-cerebral-required:-setting-up-proxy-support"></a><span id="typescript-with-cerebral-required:-setting-up-proxy-support"> </span></h2><p>Cerebral uses proxies for type-safe state and sequences access. To set up these typed proxies, create a file called <strong>app.cerebral.ts</strong>:</p><div style="background-color:#FAFAFA;border-left:4px solid #f4ca36;border-radius:3px;padding:10px 15px;color:#666"><p>You MUST use the <a href="https://www.npmjs.com/package/babel-plugin-cerebral" target="new">babel-plugin-cerebral</a> package. This plugin transforms the typed proxies into template literal tags behind the scenes.</p></div><pre><code class="language-ts"><span class="token keyword">import</span> <span class="token operator">*</span> as cerebral <span class="token keyword">from</span> <span class="token string">'cerebral'</span>
486+
nav_childless" href="/docs/resources/index.html#utilities-@cerebral/storage-description-(storage)">Description (storage)</a></li></ul></li></ul></li></ul></li></ul></div><div class="docs-doc"><div class="docs-doc-content"><h1 id="typescript-with-cerebral">TypeScript with Cerebral</h1><div style="background-color:#FAFAFA;border-left:4px solid #f44336;border-radius:3px;padding:10px 15px;color:#666"><p><strong>IMPORTANT</strong>: Even though Cerebral fully supports TypeScript, you might also want to consider Cerebral’s successor, <a href="https://overmindjs.org" target="new">Overmind</a>, which was built from the ground up with TypeScript support and modern JavaScript features.</p></div><p>Cerebral provides comprehensive type safety for your application. You can add typing gradually, so let’s take this step by step. You can stop at any level when you feel you have enough type safety for your needs.</p><h2>Required: Setting Up Proxy Support<a href="#typescript-with-cerebral-required:-setting-up-proxy-support"></a><span id="typescript-with-cerebral-required:-setting-up-proxy-support"> </span></h2><p>Cerebral uses proxies for type-safe state and sequences access. To set up these typed proxies, create a file called <strong>app.cerebral.ts</strong>:</p><div style="background-color:#FAFAFA;border-left:4px solid #f4ca36;border-radius:3px;padding:10px 15px;color:#666"><p>You MUST use the <a href="https://www.npmjs.com/package/@cerebral/babel-plugin" target="new">@cerebral/babel-plugin</a> package. This plugin transforms the typed proxies into template literal tags behind the scenes.</p></div><pre><code class="language-ts"><span class="token keyword">import</span> <span class="token operator">*</span> as cerebral <span class="token keyword">from</span> <span class="token string">'cerebral'</span>
487487

488488
type State <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
489489

docs/api/factories.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -536,12 +536,12 @@
536536
<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>
537537
<span class="token literal-property property">discard</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
538538
<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>
540540
<span class="token punctuation">{</span>
541541
<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>
542542
<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>
543543
<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>
545545
<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>
546546

547547
<span class="token comment">// Within parallel execution</span>
@@ -554,29 +554,29 @@
554554
<span class="token punctuation">]</span><span class="token punctuation">,</span>
555555
actions<span class="token punctuation">.</span>runInParallel
556556
<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>
558558
<span class="token punctuation">{</span>
559559
<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>
560560
<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>
562562

563563
<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>
565565
<span class="token punctuation">{</span>
566566
<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>
567567
<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>
569569

570570
<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>
572572
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>
573573
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>
574574
<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
575575
<span class="token punctuation">)</span><span class="token punctuation">,</span>
576576
<span class="token punctuation">{</span>
577577
<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>
578578
<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>
580580

581581
<span class="token comment">// Create a named sequence</span>
582582
<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

Comments
 (0)