Travis build: 1068
This commit is contained in:
@ -143,25 +143,25 @@ console<span class="token punctuation">.</span><span class="token function">log<
|
||||
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'2 second'</span><span class="token punctuation">);
|
||||
}
|
||||
]);</span>
|
||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="checkprop">checkProp</h4><p>Given a <code>predicate</code> function and a <code>prop</code> string this curried function will then take an <code>object</code> to inspect by calling the property and passing it to the predicate.</p><p>It summons <code>prop</code> on <code>obj</code> and passes it to a provided <code>predicate</code> function and returns a masked boolean</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">checkProp</span> <span class="token operator">=</span> <span class="token punctuation">(</span>predicate<span class="token punctuation">,</span> prop<span class="token punctuation">)</span> <span class="token operator">=></span> obj <span class="token operator">=> !!</span><span class="token function">predicate</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]);</span>
|
||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="checkprop">checkProp</h4><p>Given a <code>predicate</code> function and a <code>prop</code> string, this curried function will then take an <code>object</code> to inspect by calling the property and passing it to the predicate.</p><p>Summon <code>prop</code> on <code>obj</code>, pass it to a provided <code>predicate</code> function and return a masked boolean.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">checkProp</span> <span class="token operator">=</span> <span class="token punctuation">(</span>predicate<span class="token punctuation">,</span> prop<span class="token punctuation">)</span> <span class="token operator">=></span> obj <span class="token operator">=> !!</span><span class="token function">predicate</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js">
|
||||
<span class="token keyword">const</span> lengthIs4 <span class="token operator">=</span> <span class="token function">checkProp</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">)</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">([])</span> <span class="token comment">// false</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">])</span> <span class="token comment">// true</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Set</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]))</span> <span class="token comment">// false (Set uses Size, not length)</span>
|
||||
<span class="token keyword">const</span> lengthIs4 <span class="token operator">=</span> <span class="token function">checkProp</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">);</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">([]);</span> <span class="token comment">// false</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]);</span> <span class="token comment">// true</span>
|
||||
<span class="token function">lengthIs4</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Set</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">]));</span> <span class="token comment">// false (Set uses Size, not length)</span>
|
||||
|
||||
<span class="token keyword">const</span> session <span class="token operator">=</span> <span class="token punctuation">{</span> user<span class="token punctuation">: {} }</span>
|
||||
<span class="token keyword">const</span> validUserSession <span class="token operator">=</span> <span class="token function">checkProps</span><span class="token punctuation">(</span>u <span class="token operator">=></span> u<span class="token punctuation">.</span>active <span class="token operator">&& !</span>u<span class="token punctuation">.</span>disabled<span class="token punctuation">,</span> <span class="token string">'user'</span><span class="token punctuation">)</span>
|
||||
<span class="token keyword">const</span> session <span class="token operator">=</span> <span class="token punctuation">{</span> user<span class="token punctuation">: {} };</span>
|
||||
<span class="token keyword">const</span> validUserSession <span class="token operator">=</span> <span class="token function">checkProps</span><span class="token punctuation">(</span>u <span class="token operator">=></span> u<span class="token punctuation">.</span>active <span class="token operator">&& !</span>u<span class="token punctuation">.</span>disabled<span class="token punctuation">,</span> <span class="token string">'user'</span><span class="token punctuation">);</span>
|
||||
|
||||
<span class="token function">validUserSession</span><span class="token punctuation">(</span>session<span class="token punctuation">)</span> <span class="token comment">// false</span>
|
||||
<span class="token function">validUserSession</span><span class="token punctuation">(</span>session<span class="token punctuation">);</span> <span class="token comment">// false</span>
|
||||
|
||||
session<span class="token punctuation">.</span>user<span class="token punctuation">.</span>active <span class="token operator">=</span> <span class="token boolean">true</span>
|
||||
<span class="token function">validUserSession</span><span class="token punctuation">(</span>session<span class="token punctuation">)</span> <span class="token comment">// true</span>
|
||||
session<span class="token punctuation">.</span>user<span class="token punctuation">.</span>active <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
|
||||
<span class="token function">validUserSession</span><span class="token punctuation">(</span>session<span class="token punctuation">);</span> <span class="token comment">// true</span>
|
||||
|
||||
<span class="token keyword">const</span> <span class="token function">noLength</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> undefined<span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">)</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">([])</span> <span class="token comment">// false</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">({})</span> <span class="token comment">// true</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Set</span><span class="token punctuation">())</span> <span class="token comment">// true</span>
|
||||
<span class="token keyword">const</span> <span class="token function">noLength</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> undefined<span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">);</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">([]);</span> <span class="token comment">// false</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">({});</span> <span class="token comment">// true</span>
|
||||
<span class="token function">noLength</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Set</span><span class="token punctuation">());</span> <span class="token comment">// true</span>
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="compose">compose</h4><p>Performs right-to-left function composition.</p><p>Use <code>Array.prototype.reduce()</code> to perform right-to-left function composition. The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">compose</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">f</span><span class="token punctuation">(</span><span class="token function">g</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> <span class="token function-variable function">add5</span> <span class="token operator">=</span> x <span class="token operator">=></span> x <span class="token operator">+</span> <span class="token number">5</span><span class="token punctuation">;</span>
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">multiply</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">*</span> y<span class="token punctuation">;</span>
|
||||
|
||||
Reference in New Issue
Block a user