rubico 1.9.7 → 2.0.0
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/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/{distributor.js → build} +50 -50
- package/compose.js +46 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.min.mjs +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.min.mjs +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.min.mjs +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.min.mjs +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.min.mjs +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.min.mjs +7 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.min.mjs +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.min.mjs +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.min.mjs +7 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.min.mjs +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.min.mjs +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/forEach.min.mjs +7 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.min.mjs +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.min.mjs +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.min.mjs +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.min.mjs +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.min.mjs +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.min.mjs +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.min.mjs +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.min.mjs +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.min.mjs +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.min.mjs +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.min.mjs +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.min.mjs +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +730 -869
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.js +730 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.min.mjs +3 -3
- package/dist/rubico.mjs +730 -869
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.min.mjs +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/some.min.mjs +7 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.min.mjs +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.min.mjs +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.min.mjs +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.min.mjs +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.min.mjs +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.min.mjs +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.min.mjs +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.min.mjs +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.min.mjs +3 -3
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.min.mjs +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.min.mjs +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.min.mjs +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.min.mjs +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.min.mjs +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.min.mjs +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.min.mjs +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.min.mjs +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.min.mjs +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.min.mjs +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.min.mjs +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.min.mjs +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.min.mjs +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.min.mjs +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.min.mjs +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.min.mjs +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.min.mjs +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.min.mjs +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.min.mjs +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.min.mjs +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.min.mjs +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.min.mjs +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.min.mjs +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.min.mjs +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.min.mjs +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.min.mjs +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.min.mjs +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.min.mjs +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.min.mjs +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +9 -2042
- package/eq.js +21 -63
- package/es.js +730 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +730 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +10 -8
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/bench
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs')
|
|
4
|
+
const os = require('os')
|
|
5
|
+
const { fork, spawn } = require('child_process')
|
|
6
|
+
const File = require('./_internal/File')
|
|
7
|
+
const findAllFilePaths = require('./_internal/findAllFilePaths')
|
|
8
|
+
const package = require('./package.json')
|
|
9
|
+
|
|
10
|
+
// sortBenchmarkFilePaths(paths Array<string>) -> sorted Array<string>
|
|
11
|
+
const sortBenchmarkFilePaths = function (paths) {
|
|
12
|
+
const miscPaths = paths.filter(p => p.includes('/misc/'))
|
|
13
|
+
const corePaths = paths.filter(p => !p.includes('/misc/'))
|
|
14
|
+
corePaths.sort()
|
|
15
|
+
miscPaths.sort()
|
|
16
|
+
return corePaths.concat(miscPaths)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const outputFile = new File(`${__dirname}/benchmark-output/v${package.version}`)
|
|
20
|
+
|
|
21
|
+
const write = function (str) {
|
|
22
|
+
process.stdout.write(str)
|
|
23
|
+
outputFile.write(str)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// bench(options?: { bestOf?: number }) -> Promise<>
|
|
27
|
+
const bench = async function (options = {}) {
|
|
28
|
+
const systemInfo = `
|
|
29
|
+
rubico v${package.version} / NodeJS ${process.version} / OS ${os.release()}
|
|
30
|
+
`.trim()
|
|
31
|
+
write(systemInfo + '\n\n')
|
|
32
|
+
|
|
33
|
+
const { bestOf = 5 } = options
|
|
34
|
+
const paths = await
|
|
35
|
+
findAllFilePaths(`${__dirname}/benchmarks`)
|
|
36
|
+
.then(sortBenchmarkFilePaths)
|
|
37
|
+
|
|
38
|
+
const outputMap = new Map()
|
|
39
|
+
|
|
40
|
+
for (const path of paths) {
|
|
41
|
+
const fileName = path.replace(`${__dirname}/`, '')
|
|
42
|
+
write(fileName + '\n')
|
|
43
|
+
|
|
44
|
+
const lines = []
|
|
45
|
+
const proc = spawn('node', [path])
|
|
46
|
+
proc.stdout.on('data', data => {
|
|
47
|
+
lines.push(data.toString())
|
|
48
|
+
})
|
|
49
|
+
await new Promise(resolve => {
|
|
50
|
+
proc.on('close', () => {
|
|
51
|
+
for (const line of lines) {
|
|
52
|
+
write(line)
|
|
53
|
+
}
|
|
54
|
+
write('\n')
|
|
55
|
+
resolve()
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (process.argv[1] == __filename) {
|
|
62
|
+
bench()
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = bench
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
rubico v1.9.7 / NodeJS v18.12.1 / OS 6.3.6-arch1-1
|
|
2
|
+
|
|
3
|
+
benchmarks/all.async.js
|
|
4
|
+
rubico async array all: 1e+5: 113.398ms
|
|
5
|
+
rubico async array all tacit: 1e+5: 246.972ms
|
|
6
|
+
rubico async object all: 1e+5: 222.268ms
|
|
7
|
+
rubico async object all tacit: 1e+5: 236.216ms
|
|
8
|
+
|
|
9
|
+
benchmarks/all.js
|
|
10
|
+
rubico array all: 1e+6: 173.662ms
|
|
11
|
+
rubico array all tacit: 1e+6: 1.292s
|
|
12
|
+
rubico object all: 1e+6: 287.025ms
|
|
13
|
+
rubico object all tacit: 1e+6: 479.790ms
|
|
14
|
+
|
|
15
|
+
benchmarks/always.js
|
|
16
|
+
rubico always: 1e+7: 9.761ms
|
|
17
|
+
|
|
18
|
+
benchmarks/and.async.js
|
|
19
|
+
rubico and: 1e+5: 86.501ms
|
|
20
|
+
rubico and tacit: 1e+5: 85.752ms
|
|
21
|
+
|
|
22
|
+
benchmarks/and.js
|
|
23
|
+
rubico and: 1e+6: 134.150ms
|
|
24
|
+
rubico and tacit: 1e+6: 167.594ms
|
|
25
|
+
|
|
26
|
+
benchmarks/assign.async.js
|
|
27
|
+
rubico assign: 1e+5: 267.046ms
|
|
28
|
+
rubico assign tacit: 1e+5: 270.214ms
|
|
29
|
+
|
|
30
|
+
benchmarks/assign.js
|
|
31
|
+
rubico assign: 1e+6: 392.597ms
|
|
32
|
+
rubico assign tacit: 1e+6: 431.178ms
|
|
33
|
+
|
|
34
|
+
benchmarks/curry.js
|
|
35
|
+
rubico curry: 1e+6: 147.679ms
|
|
36
|
+
rubico curry tacit: 1e+6: 248.036ms
|
|
37
|
+
lodash/fp curry: 1e+6: 4.630s
|
|
38
|
+
ramda curry: 1e+6: 509.689ms
|
|
39
|
+
|
|
40
|
+
benchmarks/eq.async.js
|
|
41
|
+
rubico eq Promises: 1e+5: 103.777ms
|
|
42
|
+
rubico eq left value right resolver: 1e+5: 111.884ms
|
|
43
|
+
rubico eq left resolver right resolver: 1e+5: 110.390ms
|
|
44
|
+
|
|
45
|
+
benchmarks/eq.js
|
|
46
|
+
rubico eq primitive: 1e+6: 31.732ms
|
|
47
|
+
rubico eq left value right resolver: 1e+6: 87.040ms
|
|
48
|
+
rubico eq left resolver right resolver: 1e+6: 151.196ms
|
|
49
|
+
|
|
50
|
+
benchmarks/every.async.js
|
|
51
|
+
rubico every: 1e+5: 116.195ms
|
|
52
|
+
rubico every tacit: 1e+5: 119.193ms
|
|
53
|
+
|
|
54
|
+
benchmarks/every.js
|
|
55
|
+
rubico every: 1e+6: 31.209ms
|
|
56
|
+
rubico every tacit: 1e+6: 83.103ms
|
|
57
|
+
|
|
58
|
+
benchmarks/filter.async.js
|
|
59
|
+
rubico filter: 1e+5: 216.516ms
|
|
60
|
+
rubico filter tacit: 1e+5: 227.178ms
|
|
61
|
+
async filter: 1e+5: 195.048ms
|
|
62
|
+
Bluebird filter: 1e+5: 1.110s
|
|
63
|
+
|
|
64
|
+
benchmarks/filter.js
|
|
65
|
+
rubico filter: 1e+6: 66.900ms
|
|
66
|
+
rubico filter tacit: 1e+6: 166.110ms
|
|
67
|
+
lodash filter: 1e+6: 121.042ms
|
|
68
|
+
lodash/fp filter: 1e+6: 3.749s
|
|
69
|
+
ramda filter: 1e+6: 314.716ms
|
|
70
|
+
|
|
71
|
+
benchmarks/flatMap.async.js
|
|
72
|
+
rubico flatMap: 1e+5: 145.027ms
|
|
73
|
+
rubico flatMap tacit: 1e+5: 150.894ms
|
|
74
|
+
async flatMap: 1e+5: 355.875ms
|
|
75
|
+
|
|
76
|
+
benchmarks/flatMap.js
|
|
77
|
+
rubico flatMap: 1e+6: 194.979ms
|
|
78
|
+
rubico flatMap tacit: 1e+6: 268.297ms
|
|
79
|
+
lodash flatMap: 1e+6: 205.762ms
|
|
80
|
+
lodash/fp flatMap: 1e+6: 4.011s
|
|
81
|
+
ramda flatMap: 1e+6: 1.403s
|
|
82
|
+
|
|
83
|
+
benchmarks/get.async.js
|
|
84
|
+
rubico get: 1e+5: 31.593ms
|
|
85
|
+
rubico get tacit: 1e+5: 37.317ms
|
|
86
|
+
|
|
87
|
+
benchmarks/get.js
|
|
88
|
+
rubico get: 1e+6: 23.717ms
|
|
89
|
+
rubico get tacit: 1e+6: 46.783ms
|
|
90
|
+
lodash get: 1e+6: 48.303ms
|
|
91
|
+
lodash/fp get: 1e+6: 3.326s
|
|
92
|
+
ramda get: 1e+6: 228.383ms
|
|
93
|
+
|
|
94
|
+
benchmarks/gt.async.js
|
|
95
|
+
rubico gt Promises: 1e+5: 105.508ms
|
|
96
|
+
rubico gt left value right resolver: 1e+5: 111.884ms
|
|
97
|
+
rubico gt left resolver right resolver: 1e+5: 111.922ms
|
|
98
|
+
|
|
99
|
+
benchmarks/gt.js
|
|
100
|
+
rubico gt primitive: 1e+6: 30.712ms
|
|
101
|
+
rubico gt left value right resolver: 1e+6: 90.201ms
|
|
102
|
+
rubico gt left resolver right resolver: 1e+6: 148.505ms
|
|
103
|
+
|
|
104
|
+
benchmarks/gte.async.js
|
|
105
|
+
rubico gte Promises: 1e+5: 105.664ms
|
|
106
|
+
rubico gte left value right resolver: 1e+5: 112.728ms
|
|
107
|
+
rubico gte left resolver right resolver: 1e+5: 111.509ms
|
|
108
|
+
|
|
109
|
+
benchmarks/gte.js
|
|
110
|
+
rubico gte primitive: 1e+6: 32.341ms
|
|
111
|
+
rubico gte left value right resolver: 1e+6: 90.721ms
|
|
112
|
+
rubico gte left resolver right resolver: 1e+6: 136.099ms
|
|
113
|
+
|
|
114
|
+
benchmarks/lt.async.js
|
|
115
|
+
rubico lt Promises: 1e+5: 105.682ms
|
|
116
|
+
rubico lt left value right resolver: 1e+5: 110.897ms
|
|
117
|
+
rubico lt left resolver right resolver: 1e+5: 111.133ms
|
|
118
|
+
|
|
119
|
+
benchmarks/lt.js
|
|
120
|
+
rubico lt primitive: 1e+6: 30.448ms
|
|
121
|
+
rubico lt left value right resolver: 1e+6: 104.770ms
|
|
122
|
+
rubico lt left resolver right resolver: 1e+6: 135.844ms
|
|
123
|
+
|
|
124
|
+
benchmarks/lte.async.js
|
|
125
|
+
rubico lte Promises: 1e+5: 105.420ms
|
|
126
|
+
rubico lte left value right resolver: 1e+5: 112.446ms
|
|
127
|
+
rubico lte left resolver right resolver: 1e+5: 111.491ms
|
|
128
|
+
|
|
129
|
+
benchmarks/lte.js
|
|
130
|
+
rubico lte primitive: 1e+6: 32.181ms
|
|
131
|
+
rubico lte left value right resolver: 1e+6: 89.221ms
|
|
132
|
+
rubico lte left resolver right resolver: 1e+6: 149.565ms
|
|
133
|
+
|
|
134
|
+
benchmarks/map.async.js
|
|
135
|
+
rubico map: 1e+5: 107.143ms
|
|
136
|
+
rubico map tacit: 1e+5: 114.379ms
|
|
137
|
+
async map: 1e+5: 173.965ms
|
|
138
|
+
bluebird map: 1e+5: 985.614ms
|
|
139
|
+
vanilla map and Promise.all: 1e+5: 101.073ms
|
|
140
|
+
|
|
141
|
+
benchmarks/map.js
|
|
142
|
+
rubico map: 1e+6: 39.198ms
|
|
143
|
+
rubico map tacit: 1e+6: 110.067ms
|
|
144
|
+
lodash map: 1e+6: 30.109ms
|
|
145
|
+
lodash/fp map: 1e+6: 3.552s
|
|
146
|
+
ramda map: 1e+6: 294.459ms
|
|
147
|
+
|
|
148
|
+
benchmarks/not.js
|
|
149
|
+
rubico not primitive: 1e+6: 6.092ms
|
|
150
|
+
rubico not predicate: 1e+6: 59.403ms
|
|
151
|
+
rubico not predicate tacit: 1e+6: 92.298ms
|
|
152
|
+
|
|
153
|
+
benchmarks/omit.js
|
|
154
|
+
rubico omit: 1e+6: 679.009ms
|
|
155
|
+
rubico omit tacit: 1e+6: 706.551ms
|
|
156
|
+
lodash omit: 1e+6: 1.427s
|
|
157
|
+
lodash/fp omit: 1e+6: 5.613s
|
|
158
|
+
ramda omit: 1e+6: 399.519ms
|
|
159
|
+
|
|
160
|
+
benchmarks/or.async.js
|
|
161
|
+
rubico or: 1e+5: 91.735ms
|
|
162
|
+
rubico or tacit: 1e+5: 88.578ms
|
|
163
|
+
|
|
164
|
+
benchmarks/or.js
|
|
165
|
+
rubico or: 1e+6: 128.814ms
|
|
166
|
+
rubico or tacit: 1e+6: 171.069ms
|
|
167
|
+
|
|
168
|
+
benchmarks/pick.js
|
|
169
|
+
rubico pick: 1e+6: 88.926ms
|
|
170
|
+
rubico pick tacit: 1e+6: 118.456ms
|
|
171
|
+
lodash pick: 1e+6: 374.595ms
|
|
172
|
+
lodash fp pick: 1e+6: 3.635s
|
|
173
|
+
ramda pick: 1e+6: 254.004ms
|
|
174
|
+
|
|
175
|
+
benchmarks/pipe.async.js
|
|
176
|
+
rubico pipe: 1e+5: 87.330ms
|
|
177
|
+
rubico pipe tacit: 1e+5: 83.130ms
|
|
178
|
+
async waterfall: 1e+5: 131.535ms
|
|
179
|
+
|
|
180
|
+
benchmarks/pipe.js
|
|
181
|
+
rubico pipe: 1e+6: 215.993ms
|
|
182
|
+
rubico pipe tacit: 1e+6: 186.419ms
|
|
183
|
+
ramda pipe: 1e+6: 1.055s
|
|
184
|
+
lodash/fp pipe: 1e+6: 497.454ms
|
|
185
|
+
|
|
186
|
+
benchmarks/reduce.async.js
|
|
187
|
+
rubico reduce: 1e+5: 200.542ms
|
|
188
|
+
rubico reduce tacit: 1e+5: 211.528ms
|
|
189
|
+
async reduce: 1e+5: 202.368ms
|
|
190
|
+
Bluebird reduce: 1e+5: 2.431s
|
|
191
|
+
|
|
192
|
+
benchmarks/reduce.js
|
|
193
|
+
rubico reduce: 1e+6: 26.706ms
|
|
194
|
+
rubico reduce tacit: 1e+6: 104.285ms
|
|
195
|
+
lodash reduce: 1e+6: 29.708ms
|
|
196
|
+
lodash/fp reduce: 1e+6: 3.500s
|
|
197
|
+
ramda reduce: 1e+6: 458.479ms
|
|
198
|
+
|
|
199
|
+
benchmarks/set.async.js
|
|
200
|
+
rubico set: 1e+5: 66.993ms
|
|
201
|
+
rubico set tacit: 1e+5: 73.471ms
|
|
202
|
+
|
|
203
|
+
benchmarks/set.js
|
|
204
|
+
rubico set: 1e+6: 53.981ms
|
|
205
|
+
rubico set tacit: 1e+6: 80.393ms
|
|
206
|
+
lodash set: 1e+6: 62.218ms
|
|
207
|
+
lodash/fp set: 1e+6: 5.292s
|
|
208
|
+
ramda get: 1e+6: 1.049s
|
|
209
|
+
|
|
210
|
+
benchmarks/some.async.js
|
|
211
|
+
rubico some: 1e+5: 508.451ms
|
|
212
|
+
rubico some tacit: 1e+5: 531.387ms
|
|
213
|
+
|
|
214
|
+
benchmarks/some.js
|
|
215
|
+
rubico some: 1e+6: 25.770ms
|
|
216
|
+
rubico some tacit: 1e+6: 56.635ms
|
|
217
|
+
|
|
218
|
+
benchmarks/switchCase.async.js
|
|
219
|
+
rubico switchCase: 1e+5: 75.426ms
|
|
220
|
+
rubico switchCase tacit: 1e+5: 196.970ms
|
|
221
|
+
|
|
222
|
+
benchmarks/switchCase.js
|
|
223
|
+
switchCase: 1e+6: 60.119ms
|
|
224
|
+
switchCase tacit: 1e+6: 724.607ms
|
|
225
|
+
lodash cond: 1e+6: 1.128s
|
|
226
|
+
lodash/fp cond: 1e+6: 1.232s
|
|
227
|
+
ramda cond: 1e+6: 1.194s
|
|
228
|
+
|
|
229
|
+
benchmarks/tap.js
|
|
230
|
+
tap: 1e+7: 336.995ms
|
|
231
|
+
|
|
232
|
+
benchmarks/thunkify.js
|
|
233
|
+
rubico thunkify: 1e+7: 9.754ms
|
|
234
|
+
|
|
235
|
+
benchmarks/transform.async.js
|
|
236
|
+
rubico transform: 1e+5: 522.428ms
|
|
237
|
+
rubico transform tacit: 1e+5: 536.997ms
|
|
238
|
+
|
|
239
|
+
benchmarks/transform.js
|
|
240
|
+
rubico transform array -> array: 1e+6: 137.846ms
|
|
241
|
+
rubico transform array -> array tacit: 1e+6: 293.453ms
|
|
242
|
+
rubico transform array -> string: 1e+6: 1.664s
|
|
243
|
+
rubico transform array -> string tacit: 1e+6: 1.669s
|
|
244
|
+
ramda into array -> array: 1e+6: 1.077s
|
|
245
|
+
ramda into array -> string: 1e+6: 1.259s
|
|
246
|
+
|
|
247
|
+
benchmarks/tryCatch.async.js
|
|
248
|
+
rubico tryCatch: 1e+4: 173.183ms
|
|
249
|
+
rubico tryCatch tacit: 1e+4: 163.937ms
|
|
250
|
+
|
|
251
|
+
benchmarks/tryCatch.js
|
|
252
|
+
rubico tryCatch: 1e+5: 944.721ms
|
|
253
|
+
rubico tryCatch tacit: 1e+5: 934.322ms
|
|
254
|
+
ramda tryCatch: 1e+5: 1.054s
|
|
255
|
+
|
|
256
|
+
benchmarks/misc/Promise.js
|
|
257
|
+
vanilla Promise: 1e+6: 826.502ms
|
|
258
|
+
Bluebird Promise: 1e+6: 1.398s
|
|
259
|
+
|
|
260
|
+
benchmarks/misc/isPromise.js
|
|
261
|
+
isPromise .then: 1e+5: 1.183ms
|
|
262
|
+
isPromise instanceof: 1e+5: 1.760ms
|
|
263
|
+
|
|
264
|
+
benchmarks/misc/promiseAll.js
|
|
265
|
+
rubico promiseAll: 1e+5: 290.210ms
|
|
266
|
+
vanilla Promise.all: 1e+5: 294.923ms
|
|
267
|
+
Bluebird Promise.all: 1e+5: 393.508ms
|
|
268
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const all = require('../all')
|
|
3
|
+
|
|
4
|
+
const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
|
|
5
|
+
|
|
6
|
+
suite.add('rubico async array all', async () => {
|
|
7
|
+
await all(5, [
|
|
8
|
+
async value => value + 1,
|
|
9
|
+
async value => value + 2,
|
|
10
|
+
async value => value + 3,
|
|
11
|
+
])
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
suite.add('rubico async array all tacit', async () => {
|
|
15
|
+
await all([
|
|
16
|
+
async value => value + 1,
|
|
17
|
+
async value => value + 2,
|
|
18
|
+
async value => value + 3,
|
|
19
|
+
])(5)
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
suite.add('rubico async object all', async () => {
|
|
23
|
+
await all(5, {
|
|
24
|
+
a: async value => value + 1,
|
|
25
|
+
b: async value => value + 2,
|
|
26
|
+
c: async value => value + 3,
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
suite.add('rubico async object all tacit', async () => {
|
|
31
|
+
await all({
|
|
32
|
+
a: async value => value + 1,
|
|
33
|
+
b: async value => value + 2,
|
|
34
|
+
c: async value => value + 3,
|
|
35
|
+
})(5)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
if (process.argv[1] == __filename) {
|
|
39
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
40
|
+
suite.run()
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports = suite
|
package/benchmarks/all.js
CHANGED
|
@@ -1,34 +1,43 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const all = require('../all')
|
|
3
|
+
|
|
4
|
+
const suite = new TimeInLoopSuite()
|
|
5
|
+
|
|
6
|
+
suite.add('rubico array all', () => {
|
|
7
|
+
all(5, [
|
|
8
|
+
value => value + 1,
|
|
9
|
+
value => value + 2,
|
|
10
|
+
value => value + 3,
|
|
11
|
+
])
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
suite.add('rubico array all tacit', () => {
|
|
15
|
+
all([
|
|
16
|
+
value => value + 1,
|
|
17
|
+
value => value + 2,
|
|
18
|
+
value => value + 3,
|
|
19
|
+
])(5)
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
suite.add('rubico object all', () => {
|
|
23
|
+
all(5, {
|
|
24
|
+
a: value => value + 1,
|
|
25
|
+
b: value => value + 2,
|
|
26
|
+
c: value => value + 3,
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
suite.add('rubico object all tacit', () => {
|
|
31
|
+
all({
|
|
32
|
+
a: value => value + 1,
|
|
33
|
+
b: value => value + 2,
|
|
34
|
+
c: value => value + 3,
|
|
35
|
+
})(5)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
if (process.argv[1] == __filename) {
|
|
39
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
40
|
+
suite.run()
|
|
34
41
|
}
|
|
42
|
+
|
|
43
|
+
module.exports = suite
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const always = require('../always')
|
|
3
|
+
|
|
4
|
+
const suite = new TimeInLoopSuite({ loopCount: 1e7 })
|
|
5
|
+
|
|
6
|
+
suite.add('rubico always', () => {
|
|
7
|
+
always(1)()
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
if (process.argv[1] == __filename) {
|
|
11
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
12
|
+
suite.run()
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module.exports = suite
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const and = require('../and')
|
|
3
|
+
|
|
4
|
+
const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
|
|
5
|
+
|
|
6
|
+
suite.add('rubico and', async () => {
|
|
7
|
+
await and({ a: 1 }, [
|
|
8
|
+
async value => value.a == 1,
|
|
9
|
+
async value => typeof value == 'object',
|
|
10
|
+
])
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
suite.add('rubico and tacit', async () => {
|
|
14
|
+
await and([
|
|
15
|
+
async value => value.a == 1,
|
|
16
|
+
async value => typeof value == 'object',
|
|
17
|
+
])({ a: 1 })
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
if (process.argv[1] == __filename) {
|
|
21
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
22
|
+
suite.run()
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = suite
|
package/benchmarks/and.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const and = require('../and')
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const suite = new TimeInLoopSuite()
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
suite.add('rubico and', () => {
|
|
7
|
+
and({ a: 1 }, [
|
|
8
|
+
value => value.a == 1,
|
|
9
|
+
value => typeof value == 'object',
|
|
10
|
+
])
|
|
11
|
+
})
|
|
7
12
|
|
|
8
|
-
|
|
13
|
+
suite.add('rubico and tacit', () => {
|
|
14
|
+
and([
|
|
15
|
+
value => value.a == 1,
|
|
16
|
+
value => typeof value == 'object',
|
|
17
|
+
])({ a: 1 })
|
|
18
|
+
})
|
|
9
19
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @name or
|
|
14
|
-
*
|
|
15
|
-
* @benchmark
|
|
16
|
-
* isOdd(value) && isOdd(value) && isOdd(value): 1e+6: 6.664ms
|
|
17
|
-
* and([isOdd, isOdd, isOdd]): 1e+6: 16.842ms
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
// timeInLoop('isOdd(value) && isOdd(value) && isOdd(value)', 1e6, () => threeOddChecks(1))
|
|
22
|
-
|
|
23
|
-
// timeInLoop('and([isOdd, isOdd, isOdd])', 1e6, () => threeIsOdd(1))
|
|
20
|
+
if (process.argv[1] == __filename) {
|
|
21
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
22
|
+
suite.run()
|
|
24
23
|
}
|
|
24
|
+
|
|
25
|
+
module.exports = suite
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
|
|
2
|
+
const assign = require('../assign')
|
|
3
|
+
|
|
4
|
+
const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
|
|
5
|
+
|
|
6
|
+
suite.add('rubico assign', async () => {
|
|
7
|
+
await assign({}, {
|
|
8
|
+
a: async () => 1,
|
|
9
|
+
b: async () => 2,
|
|
10
|
+
c: async () => 3,
|
|
11
|
+
})
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
suite.add('rubico assign tacit', async () => {
|
|
15
|
+
await assign({
|
|
16
|
+
a: async () => 1,
|
|
17
|
+
b: async () => 2,
|
|
18
|
+
c: async () => 3,
|
|
19
|
+
})({})
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
if (process.argv[1] == __filename) {
|
|
23
|
+
suite.on('caseBestRun', run => console.log(run.output))
|
|
24
|
+
suite.run()
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
module.exports = suite
|