rubico 2.8.5 → 2.8.6
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/README.md +1 -0
- package/_internal/curryArity.js +3 -3
- package/all.js +28 -53
- package/and.js +1 -1
- package/assign.js +14 -16
- package/compose.js +12 -13
- package/curry.js +1 -1
- package/dist/Transducer.es.js +1 -1
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +1 -1
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +1 -1
- package/dist/__.es.js +1 -1
- package/dist/__.es.min.js +1 -1
- package/dist/__.js +1 -1
- package/dist/__.min.js +1 -1
- package/dist/__.mjs +1 -1
- package/dist/all.es.js +1 -1
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +1 -1
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +1 -1
- package/dist/always.es.js +1 -1
- package/dist/always.es.min.js +1 -1
- package/dist/always.js +1 -1
- package/dist/always.min.js +1 -1
- package/dist/always.mjs +1 -1
- package/dist/and.es.js +1 -1
- package/dist/and.es.min.js +1 -1
- package/dist/and.js +1 -1
- package/dist/and.min.js +1 -1
- package/dist/and.mjs +1 -1
- package/dist/assign.es.js +1 -1
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +1 -1
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +1 -1
- package/dist/compose.es.js +1 -1
- package/dist/compose.es.min.js +1 -1
- package/dist/compose.js +1 -1
- package/dist/compose.min.js +1 -1
- package/dist/compose.mjs +1 -1
- package/dist/curry.es.js +4 -4
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +4 -4
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +4 -4
- package/dist/eq.es.js +1 -1
- package/dist/eq.es.min.js +1 -1
- package/dist/eq.js +1 -1
- package/dist/eq.min.js +1 -1
- package/dist/eq.mjs +1 -1
- package/dist/every.es.js +1 -1
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +1 -1
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +1 -1
- package/dist/filter.es.js +1 -1
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +1 -1
- package/dist/flatMap.es.js +1 -1
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +1 -1
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +1 -1
- package/dist/forEach.es.js +1 -1
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +1 -1
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +1 -1
- package/dist/get.es.js +27 -3
- package/dist/get.es.min.js +2 -2
- package/dist/get.js +27 -3
- package/dist/get.min.js +2 -2
- package/dist/get.mjs +27 -3
- package/dist/gt.es.js +1 -1
- package/dist/gt.es.min.js +1 -1
- package/dist/gt.js +1 -1
- package/dist/gt.min.js +1 -1
- package/dist/gt.mjs +1 -1
- package/dist/gte.es.js +1 -1
- package/dist/gte.es.min.js +1 -1
- package/dist/gte.js +1 -1
- package/dist/gte.min.js +1 -1
- package/dist/gte.mjs +1 -1
- package/dist/lt.es.js +1 -1
- package/dist/lt.es.min.js +1 -1
- package/dist/lt.js +1 -1
- package/dist/lt.min.js +1 -1
- package/dist/lt.mjs +1 -1
- package/dist/lte.es.js +1 -1
- package/dist/lte.es.min.js +1 -1
- package/dist/lte.js +1 -1
- package/dist/lte.min.js +1 -1
- package/dist/lte.mjs +1 -1
- package/dist/map.es.js +4 -4
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +4 -4
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +4 -4
- package/dist/not.es.js +1 -1
- package/dist/not.es.min.js +1 -1
- package/dist/not.js +1 -1
- package/dist/not.min.js +1 -1
- package/dist/not.mjs +1 -1
- package/dist/omit.es.js +1 -1
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +1 -1
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +1 -1
- package/dist/or.es.js +1 -1
- package/dist/or.es.min.js +1 -1
- package/dist/or.js +1 -1
- package/dist/or.min.js +1 -1
- package/dist/or.mjs +1 -1
- package/dist/pick.es.js +1 -1
- package/dist/pick.es.min.js +1 -1
- package/dist/pick.js +1 -1
- package/dist/pick.min.js +1 -1
- package/dist/pick.mjs +1 -1
- package/dist/pipe.es.js +1 -1
- package/dist/pipe.es.min.js +1 -1
- package/dist/pipe.js +1 -1
- package/dist/pipe.min.js +1 -1
- package/dist/pipe.mjs +1 -1
- package/dist/reduce.es.js +1 -1
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +1 -1
- package/dist/rubico.es.js +6 -6
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +6 -6
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +6 -6
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +6 -6
- package/dist/set.es.js +1 -1
- package/dist/set.es.min.js +1 -1
- package/dist/set.js +1 -1
- package/dist/set.min.js +1 -1
- package/dist/set.mjs +1 -1
- package/dist/some.es.js +1 -1
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +1 -1
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +1 -1
- package/dist/switchCase.es.js +1 -1
- package/dist/switchCase.es.min.js +1 -1
- package/dist/switchCase.js +1 -1
- package/dist/switchCase.min.js +1 -1
- package/dist/switchCase.mjs +1 -1
- package/dist/tap.es.js +1 -1
- package/dist/tap.es.min.js +1 -1
- package/dist/tap.js +1 -1
- package/dist/tap.min.js +1 -1
- package/dist/tap.mjs +1 -1
- package/dist/thunkify.es.js +1 -1
- package/dist/thunkify.es.min.js +1 -1
- package/dist/thunkify.js +1 -1
- package/dist/thunkify.min.js +1 -1
- package/dist/thunkify.mjs +1 -1
- package/dist/transform.es.js +1 -1
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +1 -1
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -1
- package/dist/tryCatch.es.js +1 -1
- package/dist/tryCatch.es.min.js +1 -1
- package/dist/tryCatch.js +1 -1
- package/dist/tryCatch.min.js +1 -1
- package/dist/tryCatch.mjs +1 -1
- package/dist/x/append.es.js +1 -1
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +1 -1
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +1 -1
- package/dist/x/callProp.es.js +1 -1
- package/dist/x/callProp.es.min.js +1 -1
- package/dist/x/callProp.js +1 -1
- package/dist/x/callProp.min.js +1 -1
- package/dist/x/callProp.mjs +1 -1
- package/dist/x/defaultsDeep.es.js +1 -1
- package/dist/x/defaultsDeep.es.min.js +1 -1
- package/dist/x/defaultsDeep.js +1 -1
- package/dist/x/defaultsDeep.min.js +1 -1
- package/dist/x/defaultsDeep.mjs +1 -1
- package/dist/x/differenceWith.es.js +1 -1
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +1 -1
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +1 -1
- package/dist/x/filterOut.es.js +1 -1
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +1 -1
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +1 -1
- package/dist/x/find.es.js +1 -1
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -1
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -1
- package/dist/x/findIndex.es.js +1 -1
- package/dist/x/findIndex.es.min.js +1 -1
- package/dist/x/findIndex.js +1 -1
- package/dist/x/findIndex.min.js +1 -1
- package/dist/x/findIndex.mjs +1 -1
- package/dist/x/first.es.js +1 -1
- package/dist/x/first.es.min.js +1 -1
- package/dist/x/first.js +1 -1
- package/dist/x/first.min.js +1 -1
- package/dist/x/first.mjs +1 -1
- package/dist/x/flatten.es.js +1 -1
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +1 -1
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +1 -1
- package/dist/x/groupBy.es.js +1 -1
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +1 -1
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +1 -1
- package/dist/x/has.es.js +1 -1
- package/dist/x/has.es.min.js +1 -1
- package/dist/x/has.js +1 -1
- package/dist/x/has.min.js +1 -1
- package/dist/x/has.mjs +1 -1
- package/dist/x/identity.es.js +1 -1
- package/dist/x/identity.es.min.js +1 -1
- package/dist/x/identity.js +1 -1
- package/dist/x/identity.min.js +1 -1
- package/dist/x/identity.mjs +1 -1
- package/dist/x/includes.es.js +1 -1
- package/dist/x/includes.es.min.js +1 -1
- package/dist/x/includes.js +1 -1
- package/dist/x/includes.min.js +1 -1
- package/dist/x/includes.mjs +1 -1
- package/dist/x/isDeepEqual.es.js +1 -1
- package/dist/x/isDeepEqual.es.min.js +1 -1
- package/dist/x/isDeepEqual.js +1 -1
- package/dist/x/isDeepEqual.min.js +1 -1
- package/dist/x/isDeepEqual.mjs +1 -1
- package/dist/x/isEmpty.es.js +1 -1
- package/dist/x/isEmpty.es.min.js +1 -1
- package/dist/x/isEmpty.js +1 -1
- package/dist/x/isEmpty.min.js +1 -1
- package/dist/x/isEmpty.mjs +1 -1
- package/dist/x/isEqual.es.js +1 -1
- package/dist/x/isEqual.es.min.js +1 -1
- package/dist/x/isEqual.js +1 -1
- package/dist/x/isEqual.min.js +1 -1
- package/dist/x/isEqual.mjs +1 -1
- package/dist/x/isFunction.es.js +1 -1
- package/dist/x/isFunction.es.min.js +1 -1
- package/dist/x/isFunction.js +1 -1
- package/dist/x/isFunction.min.js +1 -1
- package/dist/x/isFunction.mjs +1 -1
- package/dist/x/isIn.es.js +1 -1
- package/dist/x/isIn.es.min.js +1 -1
- package/dist/x/isIn.js +1 -1
- package/dist/x/isIn.min.js +1 -1
- package/dist/x/isIn.mjs +1 -1
- package/dist/x/isObject.es.js +1 -1
- package/dist/x/isObject.es.min.js +1 -1
- package/dist/x/isObject.js +1 -1
- package/dist/x/isObject.min.js +1 -1
- package/dist/x/isObject.mjs +1 -1
- package/dist/x/isString.es.js +1 -1
- package/dist/x/isString.es.min.js +1 -1
- package/dist/x/isString.js +1 -1
- package/dist/x/isString.min.js +1 -1
- package/dist/x/isString.mjs +1 -1
- package/dist/x/keys.es.js +1 -1
- package/dist/x/keys.es.min.js +1 -1
- package/dist/x/keys.js +1 -1
- package/dist/x/keys.min.js +1 -1
- package/dist/x/keys.mjs +1 -1
- package/dist/x/last.es.js +1 -1
- package/dist/x/last.es.min.js +1 -1
- package/dist/x/last.js +1 -1
- package/dist/x/last.min.js +1 -1
- package/dist/x/last.mjs +1 -1
- package/dist/x/maxBy.es.js +27 -23
- package/dist/x/maxBy.es.min.js +2 -2
- package/dist/x/maxBy.js +27 -23
- package/dist/x/maxBy.min.js +2 -2
- package/dist/x/maxBy.mjs +27 -23
- package/dist/x/noop.es.js +1 -1
- package/dist/x/noop.es.min.js +1 -1
- package/dist/x/noop.js +1 -1
- package/dist/x/noop.min.js +1 -1
- package/dist/x/noop.mjs +1 -1
- package/dist/x/pluck.es.js +8 -6
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +8 -6
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +8 -6
- package/dist/x/prepend.es.js +1 -1
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +1 -1
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +1 -1
- package/dist/x/size.es.js +1 -1
- package/dist/x/size.es.min.js +1 -1
- package/dist/x/size.js +1 -1
- package/dist/x/size.min.js +1 -1
- package/dist/x/size.mjs +1 -1
- package/dist/x/trace.es.js +1 -1
- package/dist/x/trace.es.min.js +1 -1
- package/dist/x/trace.js +1 -1
- package/dist/x/trace.min.js +1 -1
- package/dist/x/trace.mjs +1 -1
- package/dist/x/unionWith.es.js +1 -1
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +1 -1
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +1 -1
- package/dist/x/uniq.es.js +1 -1
- package/dist/x/uniq.es.min.js +1 -1
- package/dist/x/uniq.js +1 -1
- package/dist/x/uniq.min.js +1 -1
- package/dist/x/uniq.mjs +1 -1
- package/dist/x/unless.es.js +1 -1
- package/dist/x/unless.es.min.js +1 -1
- package/dist/x/unless.js +1 -1
- package/dist/x/unless.min.js +1 -1
- package/dist/x/unless.mjs +1 -1
- package/dist/x/values.es.js +1 -1
- package/dist/x/values.es.min.js +1 -1
- package/dist/x/values.js +1 -1
- package/dist/x/values.min.js +1 -1
- package/dist/x/values.mjs +1 -1
- package/dist/x/when.es.js +1 -1
- package/dist/x/when.es.min.js +1 -1
- package/dist/x/when.js +1 -1
- package/dist/x/when.min.js +1 -1
- package/dist/x/when.mjs +1 -1
- package/eq.js +1 -1
- package/es.js +6 -6
- package/every.js +1 -1
- package/filter.js +1 -1
- package/flatMap.js +1 -1
- package/forEach.js +2 -2
- package/get.js +46 -24
- package/gt.js +1 -1
- package/gte.js +1 -1
- package/index.js +6 -6
- package/lt.js +1 -1
- package/lte.js +1 -1
- package/map.js +4 -4
- package/monad/Mux.js +6 -4
- package/monad/PossiblePromise.js +6 -4
- package/monad/README.md +60 -39
- package/monad/Struct.js +6 -4
- package/not.js +1 -1
- package/omit.js +1 -1
- package/or.js +1 -1
- package/package.json +1 -1
- package/pick.js +1 -1
- package/pipe.js +18 -24
- package/reduce.js +1 -1
- package/set.js +1 -1
- package/some.js +1 -1
- package/switchCase.js +41 -41
- package/tap.js +13 -21
- package/transform.js +1 -1
- package/tryCatch.js +16 -24
package/switchCase.js
CHANGED
|
@@ -12,84 +12,84 @@ const curryArgs3 = require('./_internal/curryArgs3')
|
|
|
12
12
|
*
|
|
13
13
|
* @synopsis
|
|
14
14
|
* ```coffeescript [specscript]
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* type SyncOrAsyncPredicate = (...arguments)=>Promise|boolean|any
|
|
16
|
+
* type SyncOrAsyncFunction = (...arguments)=>Promise|any
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* conditionalValues Array<Promise|boolean|any>
|
|
19
|
+
* conditionalFunctionsOrValues Array<SyncOrAsyncPredicate|SyncOrAsyncFunction|Promise|boolean|any>
|
|
19
20
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* switchCase(conditionalPromisesOrValues) -> Promise|any
|
|
24
|
-
* switchCase(...argsOrPromises, conditionalFuncsOrPromisesOrValues) -> Promise|any
|
|
25
|
-
* switchCase(conditionalFuncsOrPromisesOrValues)(...args) -> Promise|any
|
|
21
|
+
* switchCase(conditionalValues) -> Promise|any
|
|
22
|
+
* switchCase(...arguments, conditionalFunctionsOrValues) -> Promise|any
|
|
23
|
+
* switchCase(conditionalFunctionsOrValues)(...arguments) -> Promise|any
|
|
26
24
|
* ```
|
|
27
25
|
*
|
|
28
26
|
* @description
|
|
29
|
-
*
|
|
27
|
+
* Conditional function operator. Accepts an array of conditional functions or values that specifies cases as function or value pairs with the exception of the last, default function or value. All functions are provided with the same arguments and executed in series. The result of a conditional execution with `switchCase` is the result of the execution of the first truthy function or value pair, the result of the execution of the last, default function, or the provided last, default value.
|
|
30
28
|
*
|
|
31
29
|
* ```javascript [playground]
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* )
|
|
30
|
+
* function isOdd(n) {
|
|
31
|
+
* return n % 2 == 1
|
|
32
|
+
* }
|
|
33
|
+
*
|
|
34
|
+
* switchCase(1, [
|
|
35
|
+
* isOdd,
|
|
36
|
+
* n => console.log(`${n} is odd`),
|
|
37
|
+
* n => console.log(`${n} is even`),
|
|
38
|
+
* ])
|
|
41
39
|
* ```
|
|
42
40
|
*
|
|
43
|
-
*
|
|
41
|
+
* `switchCase` supports a lazy API for composability.
|
|
44
42
|
*
|
|
45
43
|
* ```javascript [playground]
|
|
46
|
-
* const fruitIsYellow = fruit => fruit.color == 'yellow'
|
|
47
|
-
*
|
|
48
44
|
* const fruitsGuesser = switchCase([
|
|
49
|
-
*
|
|
45
|
+
* fruit => fruit.color == 'yellow',
|
|
50
46
|
* fruit => fruit.name + ' is possibly a banana',
|
|
51
47
|
* fruit => fruit.name + ' is probably not a banana',
|
|
52
48
|
* ])
|
|
53
49
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
50
|
+
* const guess1 = fruitsGuesser({ name: 'plantain', color: 'yellow' })
|
|
51
|
+
* const guess2 = fruitsGuesser({ name: 'apple', color: 'red' })
|
|
56
52
|
*
|
|
57
|
-
* console.log(
|
|
58
|
-
*
|
|
53
|
+
* console.log(guess1)
|
|
54
|
+
* console.log(guess2)
|
|
59
55
|
* ```
|
|
60
56
|
*
|
|
61
|
-
* Any
|
|
57
|
+
* Any item of the conditional array passed to switchCase can be a nonfunction (object or primitive) value.
|
|
62
58
|
*
|
|
63
59
|
* ```javascript [playground]
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
60
|
+
* function identity (value) {
|
|
61
|
+
* return value
|
|
62
|
+
* }
|
|
63
|
+
*
|
|
64
|
+
* const value = switchCase(false, [
|
|
65
|
+
* identity,
|
|
66
|
+
* 'non-function',
|
|
67
|
+
* 'default-value',
|
|
68
|
+
* ])
|
|
69
|
+
*
|
|
70
|
+
* console.log(value)
|
|
71
71
|
* ```
|
|
72
72
|
*
|
|
73
|
-
* If every
|
|
73
|
+
* If every item in the conditional array is a nonfunction value, `switchCase` executes eagerly.
|
|
74
74
|
*
|
|
75
75
|
* ```javascript [playground]
|
|
76
76
|
* const age = 26
|
|
77
77
|
*
|
|
78
|
-
* const myDrink = switchCase([age >= 21, '
|
|
78
|
+
* const myDrink = switchCase([age >= 21, 'Water', 'Juice'])
|
|
79
79
|
*
|
|
80
|
-
* console.log(myDrink)
|
|
80
|
+
* console.log(myDrink)
|
|
81
81
|
* ```
|
|
82
82
|
*
|
|
83
|
-
* Any promises passed in argument position are resolved for their values before further execution.
|
|
83
|
+
* Any promises passed in argument position are resolved for their values before further execution.
|
|
84
84
|
*
|
|
85
85
|
* ```javascript [playground]
|
|
86
86
|
* switchCase(Promise.resolve(1), 2, Promise.resolve(3), [
|
|
87
87
|
* function doValuesAddUpTo6(a, b, c) {
|
|
88
|
-
* return a + b + c
|
|
88
|
+
* return a + b + c === 6
|
|
89
89
|
* },
|
|
90
90
|
* (a, b, c) => console.log(`${a} + ${b} + ${c} == 6`),
|
|
91
91
|
* (a, b, c) => console.log(`${a} + ${b} + ${c} != 6`),
|
|
92
|
-
* ])
|
|
92
|
+
* ])
|
|
93
93
|
* ```
|
|
94
94
|
*
|
|
95
95
|
* See also:
|
package/tap.js
CHANGED
|
@@ -22,15 +22,12 @@ const _tap = function (args, f) {
|
|
|
22
22
|
*
|
|
23
23
|
* @synopsis
|
|
24
24
|
* ```coffeescript [specscript]
|
|
25
|
-
*
|
|
26
|
-
* argsOrPromises Array<Promise|any>
|
|
27
|
-
*
|
|
28
|
-
* type SyncOrAsyncFunction = (...args)=>Promise|any
|
|
25
|
+
* type SyncOrAsyncFunction = (...arguments)=>Promise|any
|
|
29
26
|
*
|
|
30
27
|
* f SyncOrAsyncFunction
|
|
31
28
|
*
|
|
32
|
-
* tap(...
|
|
33
|
-
* tap(f)(...
|
|
29
|
+
* tap(...arguments, f) -> Promise|arguments[0]
|
|
30
|
+
* tap(f)(...arguments) -> Promise|arguments[0]
|
|
34
31
|
* ```
|
|
35
32
|
*
|
|
36
33
|
* @description
|
|
@@ -43,15 +40,13 @@ const _tap = function (args, f) {
|
|
|
43
40
|
* tap(value => console.log(value + 'barbaz')),
|
|
44
41
|
* ])
|
|
45
42
|
*
|
|
46
|
-
* pipeline('foo')
|
|
47
|
-
* // 'foobar'
|
|
48
|
-
* // 'foobarbaz'
|
|
43
|
+
* pipeline('foo')
|
|
49
44
|
* ```
|
|
50
45
|
*
|
|
51
|
-
* Any promises passed in argument position are resolved for their values before further execution.
|
|
46
|
+
* Any promises passed in argument position are resolved for their values before further execution.
|
|
52
47
|
*
|
|
53
48
|
* ```javascript [playground]
|
|
54
|
-
* tap(Promise.resolve(1), Promise.resolve(2), 3, console.log)
|
|
49
|
+
* tap(Promise.resolve(1), Promise.resolve(2), 3, console.log)
|
|
55
50
|
* ```
|
|
56
51
|
*
|
|
57
52
|
* See also:
|
|
@@ -108,17 +103,14 @@ const _tapIf = function (predicate, f, args) {
|
|
|
108
103
|
*
|
|
109
104
|
* @synopsis
|
|
110
105
|
* ```coffeescript [specscript]
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* type SyncOrAsyncPredicate = (...args)=>Promise|boolean|any
|
|
115
|
-
* type SyncOrAsyncFunction = (...args)=>Promise|any
|
|
106
|
+
* type SyncOrAsyncPredicate = (...arguments)=>Promise|boolean|any
|
|
107
|
+
* type SyncOrAsyncFunction = (...arguments)=>Promise|any
|
|
116
108
|
*
|
|
117
109
|
* predicate SyncOrAsyncPredicate
|
|
118
110
|
* f SyncOrAsyncFunction
|
|
119
111
|
*
|
|
120
|
-
* tap.if(...
|
|
121
|
-
* tap.if(predicate, f)(...
|
|
112
|
+
* tap.if(...arguments, predicate, f) -> Promise|arguments[0]
|
|
113
|
+
* tap.if(predicate, f)(...arguments) -> Promise|arguments[0]
|
|
122
114
|
* ```
|
|
123
115
|
*
|
|
124
116
|
* @description
|
|
@@ -130,13 +122,13 @@ const _tapIf = function (predicate, f, args) {
|
|
|
130
122
|
* const logIfOdd = tap.if(isOdd, console.log)
|
|
131
123
|
*
|
|
132
124
|
* logIfOdd(2)
|
|
133
|
-
* logIfOdd(3)
|
|
125
|
+
* logIfOdd(3)
|
|
134
126
|
* ```
|
|
135
127
|
*
|
|
136
|
-
* Any promises passed in argument position are resolved for their values before further execution.
|
|
128
|
+
* Any promises passed in argument position are resolved for their values before further execution.
|
|
137
129
|
*
|
|
138
130
|
* ```javascript [playground]
|
|
139
|
-
* tap.if(Promise.resolve(1), n => n < 5, console.log)
|
|
131
|
+
* tap.if(Promise.resolve(1), n => n < 5, console.log)
|
|
140
132
|
* tap.if(Promise.resolve(6), n => n < 5, console.log)
|
|
141
133
|
* ```
|
|
142
134
|
*
|
package/transform.js
CHANGED
|
@@ -201,7 +201,7 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
201
201
|
* promise.then(console.log)
|
|
202
202
|
* ```
|
|
203
203
|
*
|
|
204
|
-
* Any promises passed in argument position are resolved for their values before further execution.
|
|
204
|
+
* Any promises passed in argument position are resolved for their values before further execution.
|
|
205
205
|
*
|
|
206
206
|
* ```javascript [playground]
|
|
207
207
|
* const promise = transform(
|
package/tryCatch.js
CHANGED
|
@@ -22,28 +22,25 @@ const _tryCatch = function (tryer, catcher, args) {
|
|
|
22
22
|
*
|
|
23
23
|
* @synopsis
|
|
24
24
|
* ```coffeescript [specscript]
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* type SyncOrAsyncFunction = (...args)=>Promise|any
|
|
29
|
-
* type SyncOrAsyncCatcher = (error Error|any, ...args)=>Promise|any
|
|
25
|
+
* type SyncOrAsyncFunction = (...arguments)=>Promise|any
|
|
26
|
+
* type SyncOrAsyncCatcher = (error Error|any, ...arguments)=>Promise|any
|
|
30
27
|
*
|
|
31
28
|
* tryer SyncOrAsyncFunction
|
|
32
29
|
* catcher SyncOrAsyncCatcher
|
|
33
30
|
*
|
|
34
|
-
* tryCatch(tryer, catcher)(...
|
|
35
|
-
* tryCatch(...
|
|
31
|
+
* tryCatch(tryer, catcher)(...arguments) -> Promise|any
|
|
32
|
+
* tryCatch(...arguments, tryer, catcher) -> Promise|any
|
|
36
33
|
* ```
|
|
37
34
|
*
|
|
38
35
|
* @description
|
|
39
|
-
* Function
|
|
36
|
+
* Function error handler. Accepts a tryer function and a catcher function. Calls the tryer function and catches any error thrown by the tryer function with the catcher function.
|
|
40
37
|
*
|
|
41
38
|
* ```javascript [playground]
|
|
42
39
|
* const throwsIfOdd = number => {
|
|
43
|
-
* if (number % 2
|
|
40
|
+
* if (number % 2 === 1) {
|
|
44
41
|
* throw new Error(`${number} is odd`)
|
|
45
42
|
* }
|
|
46
|
-
* console.log('did not throw for', number)
|
|
43
|
+
* console.log('did not throw for number', number)
|
|
47
44
|
* }
|
|
48
45
|
*
|
|
49
46
|
* const errorHandler = (error, number) => {
|
|
@@ -53,20 +50,18 @@ const _tryCatch = function (tryer, catcher, args) {
|
|
|
53
50
|
*
|
|
54
51
|
* const handler = tryCatch(throwsIfOdd, errorHandler)
|
|
55
52
|
*
|
|
56
|
-
* handler(2)
|
|
57
|
-
* handler(3)
|
|
58
|
-
* // Error: 3 is odd
|
|
59
|
-
*
|
|
53
|
+
* handler(2)
|
|
54
|
+
* handler(3)
|
|
60
55
|
* ```
|
|
61
56
|
*
|
|
62
|
-
* If the
|
|
57
|
+
* If the tryer function is asynchronous and returns a rejected promise, the catcher function will handle the error from the rejected promise.
|
|
63
58
|
*
|
|
64
59
|
* ```javascript [playground]
|
|
65
60
|
* const rejectsIfOdd = async number => {
|
|
66
61
|
* if (number % 2 == 1) {
|
|
67
62
|
* throw new Error(`${number} is odd`)
|
|
68
63
|
* }
|
|
69
|
-
* console.log('did not
|
|
64
|
+
* console.log('did not reject for number', number)
|
|
70
65
|
* }
|
|
71
66
|
*
|
|
72
67
|
* const errorHandler = (error, number) => {
|
|
@@ -76,13 +71,11 @@ const _tryCatch = function (tryer, catcher, args) {
|
|
|
76
71
|
*
|
|
77
72
|
* const asyncHandler = tryCatch(rejectsIfOdd, errorHandler)
|
|
78
73
|
*
|
|
79
|
-
* asyncHandler(2)
|
|
80
|
-
* asyncHandler(3)
|
|
81
|
-
* // Error: 3 is odd
|
|
82
|
-
*
|
|
74
|
+
* asyncHandler(2)
|
|
75
|
+
* asyncHandler(3)
|
|
83
76
|
* ```
|
|
84
77
|
*
|
|
85
|
-
*
|
|
78
|
+
* `tryCatch` executes eagerly when provided any number of arguments before the tryer and catcher functions.
|
|
86
79
|
*
|
|
87
80
|
* ```javascript [playground]
|
|
88
81
|
* const add = (a, b) => a + b
|
|
@@ -91,11 +84,11 @@ const _tryCatch = function (tryer, catcher, args) {
|
|
|
91
84
|
* const sum = numbers.reduce(add)
|
|
92
85
|
* throw new Error(`the sum is ${sum}`)
|
|
93
86
|
* }, function logErrorMessage(error) {
|
|
94
|
-
* console.error(error.message)
|
|
87
|
+
* console.error(error.message)
|
|
95
88
|
* })
|
|
96
89
|
* ```
|
|
97
90
|
*
|
|
98
|
-
* Any promises passed in argument position are resolved for their values before further execution.
|
|
91
|
+
* Any promises passed in argument position are resolved for their values before further execution.
|
|
99
92
|
*
|
|
100
93
|
* ```javascript [playground]
|
|
101
94
|
* tryCatch(Promise.resolve(1), 2, Promise.resolve(3), (a, b, c) => {
|
|
@@ -103,7 +96,6 @@ const _tryCatch = function (tryer, catcher, args) {
|
|
|
103
96
|
* if (sum > 5) {
|
|
104
97
|
* throw new Error('limit exceeded')
|
|
105
98
|
* }
|
|
106
|
-
* console.log('sum:', sum)
|
|
107
99
|
* }, (error, a, b, c) => {
|
|
108
100
|
* console.error(`${a} + ${b} + ${c}: ${error.message}`)
|
|
109
101
|
* })
|