Travis build: 1498
This commit is contained in:
11
README.md
11
README.md
@ -574,13 +574,10 @@ const overArgs = (fn, transforms) => (...args) => fn(...args.map((val, i) => tra
|
||||
<summary>Examples</summary>
|
||||
|
||||
```js
|
||||
var func = overArgs(
|
||||
function(x, y) {
|
||||
return [x, y];
|
||||
},
|
||||
[square, doubled]
|
||||
);
|
||||
func(9, 3); // [81, 6]
|
||||
const square = n => n * n;
|
||||
const double = n => n * 2;
|
||||
const fn = overArgs((x, y) => [x, y], [square, double]);
|
||||
fn(9, 3); // [81, 6]
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
@ -79,13 +79,10 @@ Object<span class="token punctuation">.</span><span class="token function">assig
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> minMax <span class="token operator">=</span> <span class="token function">over</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span>min<span class="token punctuation">,</span> Math<span class="token punctuation">.</span>max<span class="token punctuation">);</span>
|
||||
<span class="token function">minMax</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 number">5</span><span class="token punctuation">);</span> <span class="token comment">// [1,5]</span>
|
||||
</pre><button class="primary clipboard-copy">📋 Copy to clipboard</button></div></div><div class="card fluid"><h3 id="overargs" class="section double-padded">overArgs</h3><div class="section double-padded"><p>Creates a function that invokes the provided function with its arguments transformed.</p><p>Use <code>Array.map()</code> to apply <code>transforms</code> to <code>args</code> in combination with the spread operator (<code>...</code>) to pass the transformed arguments to <code>fn</code>.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">overArgs</span> <span class="token operator">=</span> <span class="token punctuation">(</span>fn<span class="token punctuation">,</span> transforms<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">fn</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">((</span>val<span class="token punctuation">,</span> i<span class="token punctuation">)</span> <span class="token operator">=></span> transforms<span class="token punctuation">[</span>i<span class="token punctuation">](</span>val<span class="token punctuation">)));</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">var</span> func <span class="token operator">=</span> <span class="token function">overArgs</span><span class="token punctuation">(</span>
|
||||
<span class="token keyword">function</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">) {</span>
|
||||
<span class="token keyword">return</span> <span class="token punctuation">[</span>x<span class="token punctuation">,</span> y<span class="token punctuation">];
|
||||
},
|
||||
[</span>square<span class="token punctuation">,</span> doubled<span class="token punctuation">]
|
||||
);</span>
|
||||
<span class="token function">func</span><span class="token punctuation">(</span><span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">);</span> <span class="token comment">// [81, 6]</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">square</span> <span class="token operator">=</span> n <span class="token operator">=></span> n <span class="token operator">*</span> n<span class="token punctuation">;</span>
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">double</span> <span class="token operator">=</span> n <span class="token operator">=></span> n <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">;</span>
|
||||
<span class="token keyword">const</span> fn <span class="token operator">=</span> <span class="token function">overArgs</span><span class="token punctuation">((</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">[</span>x<span class="token punctuation">,</span> y<span class="token punctuation">], [</span>square<span class="token punctuation">,</span> double<span class="token punctuation">]);</span>
|
||||
<span class="token function">fn</span><span class="token punctuation">(</span><span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">);</span> <span class="token comment">// [81, 6]</span>
|
||||
</pre><button class="primary clipboard-copy">📋 Copy to clipboard</button></div></div><div class="card fluid"><h3 id="pipeasyncfunctions" class="section double-padded">pipeAsyncFunctions</h3><div class="section double-padded"><p>Performs left-to-right function composition for asynchronous functions.</p><p>Use <code>Array.reduce()</code> with the spread operator (<code>...</code>) to perform left-to-right function composition using <code>Promise.then()</code>. The functions can return a combination of: simple values, <code>Promise</code>'s, or they can be defined as <code>async</code> ones returning through <code>await</code>. All functions must be unary.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">pipeAsyncFunctions</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> arg <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>p<span class="token punctuation">,</span> f<span class="token punctuation">)</span> <span class="token operator">=></span> p<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span>f<span class="token punctuation">),</span> Promise<span class="token punctuation">.</span><span class="token function">resolve</span><span class="token punctuation">(</span>arg<span class="token punctuation">));</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> sum <span class="token operator">=</span> <span class="token function">pipeAsyncFunctions</span><span class="token punctuation">(</span>
|
||||
x <span class="token operator">=></span> x <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
|
||||
Reference in New Issue
Block a user