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
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
10
|
+
const __ = Symbol.for('placeholder')
|
|
11
|
+
|
|
12
|
+
// argument resolver for curry2
|
|
13
|
+
const curry2ResolveArg0 = (
|
|
14
|
+
baseFunc, arg1,
|
|
15
|
+
) => function arg0Resolver(arg0) {
|
|
16
|
+
return baseFunc(arg0, arg1)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// argument resolver for curry2
|
|
20
|
+
const curry2ResolveArg1 = (
|
|
21
|
+
baseFunc, arg0,
|
|
22
|
+
) => function arg1Resolver(arg1) {
|
|
23
|
+
return baseFunc(arg0, arg1)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
27
|
+
return arg0 == __
|
|
28
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
29
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
30
|
+
}
|
|
31
|
+
|
|
8
32
|
const isArray = Array.isArray
|
|
9
33
|
|
|
10
34
|
const objectProto = Object.prototype
|
|
@@ -21,8 +45,6 @@ const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
|
21
45
|
|
|
22
46
|
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
23
47
|
|
|
24
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
25
|
-
|
|
26
48
|
const promiseAll = Promise.all.bind(Promise)
|
|
27
49
|
|
|
28
50
|
const always = value => function getter() { return value }
|
|
@@ -74,83 +96,43 @@ const asyncIteratorForEach = async function (asyncIterator, callback) {
|
|
|
74
96
|
: promiseAll(promises).then(always(asyncIterator))
|
|
75
97
|
}
|
|
76
98
|
|
|
77
|
-
const generatorFunctionForEach = (
|
|
78
|
-
generatorFunction, callback,
|
|
79
|
-
) => function* executingCallbackForEach(...args) {
|
|
80
|
-
const promises = [],
|
|
81
|
-
generator = generatorFunction(...args)
|
|
82
|
-
for (const item of generator) {
|
|
83
|
-
const operation = callback(item)
|
|
84
|
-
if (isPromise(operation)) {
|
|
85
|
-
promises.push(operation)
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return promises.length == 0 ? generator
|
|
89
|
-
: promiseAll(promises).then(always(generator))
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const asyncGeneratorFunctionForEach = (
|
|
93
|
-
asyncGeneratorFunction, callback,
|
|
94
|
-
) => async function* executingCallbackForEach(...args) {
|
|
95
|
-
const promises = [],
|
|
96
|
-
asyncIterator = asyncGeneratorFunction(...args)
|
|
97
|
-
for await (const item of asyncIterator) {
|
|
98
|
-
const operation = callback(item)
|
|
99
|
-
if (isPromise(operation)) {
|
|
100
|
-
promises.push(operation)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return promises.length == 0 ? asyncIterator
|
|
104
|
-
: promiseAll(promises).then(always(asyncIterator))
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const thunkify2 = (func, arg0, arg1) => function thunk() {
|
|
108
|
-
return func(arg0, arg1)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const reducerForEach = (
|
|
112
|
-
reducer, callback,
|
|
113
|
-
) => function executingForEach(result, item) {
|
|
114
|
-
const operation = callback(item)
|
|
115
|
-
if (isPromise(operation)) {
|
|
116
|
-
return operation.then(thunkify2(reducer, result, item))
|
|
117
|
-
}
|
|
118
|
-
return reducer(result, item)
|
|
119
|
-
}
|
|
120
|
-
|
|
121
99
|
const symbolIterator = Symbol.iterator
|
|
122
100
|
|
|
123
101
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
124
102
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
103
|
+
// type Collection = Array|Iterable|AsyncIterable|{ forEach: function }|Object
|
|
104
|
+
// _forEach(collection Collection, callback function) -> collection Collection
|
|
105
|
+
const _forEach = function (collection, callback) {
|
|
106
|
+
if (isArray(collection)) {
|
|
107
|
+
return arrayForEach(collection, callback)
|
|
128
108
|
}
|
|
129
|
-
if (
|
|
130
|
-
|
|
131
|
-
return generatorFunctionForEach(value, callback)
|
|
132
|
-
}
|
|
133
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
134
|
-
return asyncGeneratorFunctionForEach(value, callback)
|
|
135
|
-
}
|
|
136
|
-
return reducerForEach(value, callback)
|
|
109
|
+
if (collection == null) {
|
|
110
|
+
return collection
|
|
137
111
|
}
|
|
138
|
-
if (
|
|
139
|
-
return
|
|
112
|
+
if (typeof collection.forEach == 'function') {
|
|
113
|
+
return collection.forEach(callback)
|
|
140
114
|
}
|
|
141
|
-
if (typeof
|
|
142
|
-
return
|
|
115
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
116
|
+
return iteratorForEach(collection[symbolIterator](), callback)
|
|
143
117
|
}
|
|
144
|
-
if (typeof
|
|
145
|
-
return
|
|
118
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
119
|
+
return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
|
|
146
120
|
}
|
|
147
|
-
if (
|
|
148
|
-
return
|
|
121
|
+
if (collection.constructor == Object) {
|
|
122
|
+
return objectForEach(collection, callback)
|
|
149
123
|
}
|
|
150
|
-
|
|
151
|
-
|
|
124
|
+
return collection
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const forEach = function (...args) {
|
|
128
|
+
const callback = args.pop()
|
|
129
|
+
if (args.length == 0) {
|
|
130
|
+
return curry2(_forEach, __, callback)
|
|
152
131
|
}
|
|
153
|
-
|
|
132
|
+
const collection = args[0]
|
|
133
|
+
return isPromise(collection)
|
|
134
|
+
? collection.then(curry2(_forEach, __, callback))
|
|
135
|
+
: _forEach(collection, callback)
|
|
154
136
|
}
|
|
155
137
|
|
|
156
138
|
export default forEach
|
package/dist/get.es.js
CHANGED
|
@@ -1,12 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
10
|
+
const __ = Symbol.for('placeholder')
|
|
11
|
+
|
|
12
|
+
// argument resolver for curry3
|
|
13
|
+
const curry3ResolveArg0 = (
|
|
14
|
+
baseFunc, arg1, arg2,
|
|
15
|
+
) => function arg0Resolver(arg0) {
|
|
16
|
+
return baseFunc(arg0, arg1, arg2)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// argument resolver for curry3
|
|
20
|
+
const curry3ResolveArg1 = (
|
|
21
|
+
baseFunc, arg0, arg2,
|
|
22
|
+
) => function arg1Resolver(arg1) {
|
|
23
|
+
return baseFunc(arg0, arg1, arg2)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// argument resolver for curry3
|
|
27
|
+
const curry3ResolveArg2 = (
|
|
28
|
+
baseFunc, arg0, arg1,
|
|
29
|
+
) => function arg2Resolver(arg2) {
|
|
30
|
+
return baseFunc(arg0, arg1, arg2)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
34
|
+
if (arg0 == __) {
|
|
35
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
36
|
+
}
|
|
37
|
+
if (arg1 == __) {
|
|
38
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
39
|
+
}
|
|
40
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
41
|
+
}
|
|
42
|
+
|
|
8
43
|
const isArray = Array.isArray
|
|
9
44
|
|
|
45
|
+
const isObject = value => {
|
|
46
|
+
if (value == null) {
|
|
47
|
+
return false
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const typeofValue = typeof value
|
|
51
|
+
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
52
|
+
}
|
|
53
|
+
|
|
10
54
|
const memoizeCappedUnary = function (func, cap) {
|
|
11
55
|
const cache = new Map(),
|
|
12
56
|
memoized = function memoized(arg0) {
|
|
@@ -65,11 +109,22 @@ const getByPath = function (value, path) {
|
|
|
65
109
|
return result
|
|
66
110
|
}
|
|
67
111
|
|
|
68
|
-
|
|
69
|
-
|
|
112
|
+
// _get(object Object, path string, defaultValue function|any)
|
|
113
|
+
const _get = function (object, path, defaultValue) {
|
|
114
|
+
const result = object == null ? undefined : getByPath(object, path)
|
|
70
115
|
return result === undefined
|
|
71
|
-
? typeof defaultValue == 'function' ? defaultValue(
|
|
116
|
+
? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
|
|
72
117
|
: result
|
|
73
118
|
}
|
|
74
119
|
|
|
120
|
+
const get = function (arg0, arg1, arg2) {
|
|
121
|
+
if (isPromise(arg0)) {
|
|
122
|
+
return arg0.then(curry3(_get, __, arg1, arg2))
|
|
123
|
+
}
|
|
124
|
+
if (isObject(arg0) && !isArray(arg0)) {
|
|
125
|
+
return _get(arg0, arg1, arg2)
|
|
126
|
+
}
|
|
127
|
+
return curry3(_get, __, arg0, arg1)
|
|
128
|
+
}
|
|
129
|
+
|
|
75
130
|
export default get
|
package/dist/get.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isArray=Array.isArray,memoizeCappedUnary=function(
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,i=r;for(;++o<n;)if(i=i[t[o]],null==i)return;return i},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return null!=(n=r)&&"function"==typeof n.then?r.then(curry3(_get,__,e,t)):isObject(r)&&!isArray(r)?_get(r,e,t):curry3(_get,__,r,e);var n};export default get;
|
package/dist/get.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -11,8 +11,52 @@
|
|
|
11
11
|
else (root.get = get) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
16
|
+
const __ = Symbol.for('placeholder')
|
|
17
|
+
|
|
18
|
+
// argument resolver for curry3
|
|
19
|
+
const curry3ResolveArg0 = (
|
|
20
|
+
baseFunc, arg1, arg2,
|
|
21
|
+
) => function arg0Resolver(arg0) {
|
|
22
|
+
return baseFunc(arg0, arg1, arg2)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// argument resolver for curry3
|
|
26
|
+
const curry3ResolveArg1 = (
|
|
27
|
+
baseFunc, arg0, arg2,
|
|
28
|
+
) => function arg1Resolver(arg1) {
|
|
29
|
+
return baseFunc(arg0, arg1, arg2)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// argument resolver for curry3
|
|
33
|
+
const curry3ResolveArg2 = (
|
|
34
|
+
baseFunc, arg0, arg1,
|
|
35
|
+
) => function arg2Resolver(arg2) {
|
|
36
|
+
return baseFunc(arg0, arg1, arg2)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
40
|
+
if (arg0 == __) {
|
|
41
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
42
|
+
}
|
|
43
|
+
if (arg1 == __) {
|
|
44
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
45
|
+
}
|
|
46
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
47
|
+
}
|
|
48
|
+
|
|
14
49
|
const isArray = Array.isArray
|
|
15
50
|
|
|
51
|
+
const isObject = value => {
|
|
52
|
+
if (value == null) {
|
|
53
|
+
return false
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const typeofValue = typeof value
|
|
57
|
+
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
58
|
+
}
|
|
59
|
+
|
|
16
60
|
const memoizeCappedUnary = function (func, cap) {
|
|
17
61
|
const cache = new Map(),
|
|
18
62
|
memoized = function memoized(arg0) {
|
|
@@ -71,12 +115,23 @@ const getByPath = function (value, path) {
|
|
|
71
115
|
return result
|
|
72
116
|
}
|
|
73
117
|
|
|
74
|
-
|
|
75
|
-
|
|
118
|
+
// _get(object Object, path string, defaultValue function|any)
|
|
119
|
+
const _get = function (object, path, defaultValue) {
|
|
120
|
+
const result = object == null ? undefined : getByPath(object, path)
|
|
76
121
|
return result === undefined
|
|
77
|
-
? typeof defaultValue == 'function' ? defaultValue(
|
|
122
|
+
? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
|
|
78
123
|
: result
|
|
79
124
|
}
|
|
80
125
|
|
|
126
|
+
const get = function (arg0, arg1, arg2) {
|
|
127
|
+
if (isPromise(arg0)) {
|
|
128
|
+
return arg0.then(curry3(_get, __, arg1, arg2))
|
|
129
|
+
}
|
|
130
|
+
if (isObject(arg0) && !isArray(arg0)) {
|
|
131
|
+
return _get(arg0, arg1, arg2)
|
|
132
|
+
}
|
|
133
|
+
return curry3(_get, __, arg0, arg1)
|
|
134
|
+
}
|
|
135
|
+
|
|
81
136
|
return get
|
|
82
137
|
}())))
|
package/dist/get.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(t
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.get=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=function(t,e,o,r){return e==n?((n,t,e)=>function(o){return n(o,t,e)})(t,o,r):o==n?((n,t,e)=>function(o){return n(t,o,e)})(t,e,r):((n,t,e)=>function(o){return n(t,e,o)})(t,e,o)},e=Array.isArray,o=/[.|[|\]]+/,r=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],r="]"==n[t];return e&&r?n.slice(1,t).split(o):e?n.slice(1).split(o):r?n.slice(0,t).split(o):n.split(o)}),500),u=function(n,t){const o=(n=>e(n)?n:"string"==typeof n?r(n):[n])(t),u=o.length;let i=-1,c=n;for(;++i<u;)if(c=c[o[i]],null==c)return;return c},i=function(n,t,e){const o=null==n?void 0:u(n,t);return void 0===o?"function"==typeof e?e(n):e:o};return function(o,r,u){return null!=(c=o)&&"function"==typeof c.then?o.then(t(i,n,r,u)):(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(o)&&!e(o)?i(o,r,u):t(i,n,o,r);var c}}());
|
package/dist/get.min.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isArray=Array.isArray,memoizeCappedUnary=function(
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,i=r;for(;++o<n;)if(i=i[t[o]],null==i)return;return i},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return null!=(n=r)&&"function"==typeof n.then?r.then(curry3(_get,__,e,t)):isObject(r)&&!isArray(r)?_get(r,e,t):curry3(_get,__,r,e);var n};export default get;
|
package/dist/get.mjs
CHANGED
|
@@ -1,12 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
10
|
+
const __ = Symbol.for('placeholder')
|
|
11
|
+
|
|
12
|
+
// argument resolver for curry3
|
|
13
|
+
const curry3ResolveArg0 = (
|
|
14
|
+
baseFunc, arg1, arg2,
|
|
15
|
+
) => function arg0Resolver(arg0) {
|
|
16
|
+
return baseFunc(arg0, arg1, arg2)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// argument resolver for curry3
|
|
20
|
+
const curry3ResolveArg1 = (
|
|
21
|
+
baseFunc, arg0, arg2,
|
|
22
|
+
) => function arg1Resolver(arg1) {
|
|
23
|
+
return baseFunc(arg0, arg1, arg2)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// argument resolver for curry3
|
|
27
|
+
const curry3ResolveArg2 = (
|
|
28
|
+
baseFunc, arg0, arg1,
|
|
29
|
+
) => function arg2Resolver(arg2) {
|
|
30
|
+
return baseFunc(arg0, arg1, arg2)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
34
|
+
if (arg0 == __) {
|
|
35
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
36
|
+
}
|
|
37
|
+
if (arg1 == __) {
|
|
38
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
39
|
+
}
|
|
40
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
41
|
+
}
|
|
42
|
+
|
|
8
43
|
const isArray = Array.isArray
|
|
9
44
|
|
|
45
|
+
const isObject = value => {
|
|
46
|
+
if (value == null) {
|
|
47
|
+
return false
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const typeofValue = typeof value
|
|
51
|
+
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
52
|
+
}
|
|
53
|
+
|
|
10
54
|
const memoizeCappedUnary = function (func, cap) {
|
|
11
55
|
const cache = new Map(),
|
|
12
56
|
memoized = function memoized(arg0) {
|
|
@@ -65,11 +109,22 @@ const getByPath = function (value, path) {
|
|
|
65
109
|
return result
|
|
66
110
|
}
|
|
67
111
|
|
|
68
|
-
|
|
69
|
-
|
|
112
|
+
// _get(object Object, path string, defaultValue function|any)
|
|
113
|
+
const _get = function (object, path, defaultValue) {
|
|
114
|
+
const result = object == null ? undefined : getByPath(object, path)
|
|
70
115
|
return result === undefined
|
|
71
|
-
? typeof defaultValue == 'function' ? defaultValue(
|
|
116
|
+
? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
|
|
72
117
|
: result
|
|
73
118
|
}
|
|
74
119
|
|
|
120
|
+
const get = function (arg0, arg1, arg2) {
|
|
121
|
+
if (isPromise(arg0)) {
|
|
122
|
+
return arg0.then(curry3(_get, __, arg1, arg2))
|
|
123
|
+
}
|
|
124
|
+
if (isObject(arg0) && !isArray(arg0)) {
|
|
125
|
+
return _get(arg0, arg1, arg2)
|
|
126
|
+
}
|
|
127
|
+
return curry3(_get, __, arg0, arg1)
|
|
128
|
+
}
|
|
129
|
+
|
|
75
130
|
export default get
|