rubico 2.1.0 → 2.2.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/README.md +2 -0
- package/_internal/genericTransform.js +30 -28
- 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 +1 -1
- package/dist/curry.es.min.js +1 -1
- package/dist/curry.js +1 -1
- package/dist/curry.min.js +1 -1
- package/dist/curry.mjs +1 -1
- 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 +1 -1
- package/dist/get.es.min.js +1 -1
- package/dist/get.js +1 -1
- package/dist/get.min.js +1 -1
- package/dist/get.mjs +1 -1
- 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 +1 -1
- package/dist/map.es.min.js +1 -1
- package/dist/map.js +1 -1
- package/dist/map.min.js +1 -1
- package/dist/map.mjs +1 -1
- 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 +57 -46
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +57 -46
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +57 -46
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +57 -46
- 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 +32 -2
- package/dist/tap.es.min.js +2 -2
- package/dist/tap.js +32 -2
- package/dist/tap.min.js +2 -2
- package/dist/tap.mjs +32 -2
- 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 +26 -24
- package/dist/transform.es.min.js +2 -2
- package/dist/transform.js +26 -24
- package/dist/transform.min.js +2 -2
- package/dist/transform.mjs +26 -24
- 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 +1 -1
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +1 -1
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +1 -1
- 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 +1 -1
- package/dist/x/pluck.es.min.js +1 -1
- package/dist/x/pluck.js +1 -1
- package/dist/x/pluck.min.js +1 -1
- package/dist/x/pluck.mjs +1 -1
- 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 +32 -2
- package/dist/x/trace.es.min.js +2 -2
- package/dist/x/trace.js +32 -2
- package/dist/x/trace.min.js +2 -2
- package/dist/x/trace.mjs +32 -2
- 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/es.js +57 -46
- package/index.js +57 -46
- package/package.json +43 -2
- package/tap.js +15 -4
- package/.eslintignore +0 -5
- package/.eslintrc.js +0 -330
- package/.github/workflows/nodejs.yml +0 -27
- package/.vscode/launch.json +0 -25
- package/AggregateReducer.test.js +0 -82
- package/CHANGELOG.md +0 -310
- package/CNAME +0 -1
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -4
- package/Transducer.test.js +0 -154
- package/_config.yml +0 -1
- package/_internal/improvedGenericTransform.js +0 -93
- package/archive/FlatMappingIterator-2020-09-28.js +0 -68
- package/archive/_Promise-2023-05-29.js +0 -93
- package/archive/arrayMap2-2023-05-29.js +0 -73
- package/archive/benchmarks-v1.9.7/all.js +0 -34
- package/archive/benchmarks-v1.9.7/and.js +0 -24
- package/archive/benchmarks-v1.9.7/any.js +0 -32
- package/archive/benchmarks-v1.9.7/assign.js +0 -174
- package/archive/benchmarks-v1.9.7/curry.js +0 -55
- package/archive/benchmarks-v1.9.7/eq.js +0 -25
- package/archive/benchmarks-v1.9.7/filter.js +0 -1322
- package/archive/benchmarks-v1.9.7/flatMap.js +0 -48
- package/archive/benchmarks-v1.9.7/forEach.js +0 -33
- package/archive/benchmarks-v1.9.7/fork.js +0 -123
- package/archive/benchmarks-v1.9.7/get.js +0 -44
- package/archive/benchmarks-v1.9.7/gt.js +0 -25
- package/archive/benchmarks-v1.9.7/gte.js +0 -25
- package/archive/benchmarks-v1.9.7/integration.js +0 -88
- package/archive/benchmarks-v1.9.7/lt.js +0 -25
- package/archive/benchmarks-v1.9.7/lte.js +0 -25
- package/archive/benchmarks-v1.9.7/map.js +0 -892
- package/archive/benchmarks-v1.9.7/misc.js +0 -470
- package/archive/benchmarks-v1.9.7/omit.js +0 -28
- package/archive/benchmarks-v1.9.7/or.js +0 -51
- package/archive/benchmarks-v1.9.7/pick.js +0 -24
- package/archive/benchmarks-v1.9.7/pipe.js +0 -152
- package/archive/benchmarks-v1.9.7/reduce.js +0 -739
- package/archive/benchmarks-v1.9.7/switchCase.js +0 -256
- package/archive/benchmarks-v1.9.7/tap.js +0 -90
- package/archive/benchmarks-v1.9.7/transform.js +0 -218
- package/archive/benchmarks-v1.9.7/tryCatch.js +0 -108
- package/archive/curry.js +0 -13
- package/archive/examples-v1.6.11/browserModule.html +0 -31
- package/archive/examples-v1.6.11/browserScript.html +0 -32
- package/archive/examples-v1.6.11/coolTransformToConsole.js +0 -1
- package/archive/examples-v1.6.11/denoLargeGasMap.js +0 -85
- package/archive/examples-v1.6.11/denoServer.js +0 -9
- package/archive/examples-v1.6.11/denoServerWithMiddleware.js +0 -55
- package/archive/examples-v1.6.11/logTodosRange.js +0 -21
- package/archive/examples-v1.6.11/makeARequest.html +0 -46
- package/archive/examples-v1.6.11/nodeComplexTransformation.js +0 -106
- package/archive/examples-v1.6.11/nodeConditionallyExtractIDs.js +0 -50
- package/archive/examples-v1.6.11/nodeFloatingPoint.js +0 -55
- package/archive/examples-v1.6.11/nodeGetAllJiraBoards.js +0 -45
- package/archive/examples-v1.6.11/nodeGetSocketIOClientsTotalCount.js +0 -34
- package/archive/examples-v1.6.11/nodeKafkaConsumer.js +0 -63
- package/archive/examples-v1.6.11/nodeMakeMultipleRequests.js +0 -55
- package/archive/examples-v1.6.11/nodeOnRecordAddTask.js +0 -34
- package/archive/examples-v1.6.11/nodePostRequestWithAuth.js +0 -36
- package/archive/examples-v1.6.11/nodeSpeedbackMatchmakingAlgorithm.js +0 -96
- package/archive/examples-v1.6.11/nodeTireData.js +0 -36
- package/archive/examples-v1.6.11/nodeTripleMap.js +0 -85
- package/archive/examples-v1.6.11/squaredOdds.ts +0 -16
- package/archive/examples-v1.6.11/transducerMaxBuyer.js +0 -67
- package/archive/examples-v1.6.11/transformLogTodosRange.js +0 -31
- package/archive/examples-v1.6.11/transformStreamRandomInts.js +0 -19
- package/archive/genericReduceConcurrent.js +0 -277
- package/archive/index.v0.2.9.js +0 -1685
- package/archive/objectValuesGenerator.js +0 -13
- package/archive/test.v0.2.9.js +0 -2334
- package/bench +0 -65
- package/benchmark-output/v1.9.7 +0 -268
- package/benchmarks/all.async.js +0 -43
- package/benchmarks/all.js +0 -43
- package/benchmarks/always.js +0 -15
- package/benchmarks/and.async.js +0 -25
- package/benchmarks/and.js +0 -25
- package/benchmarks/assign.async.js +0 -27
- package/benchmarks/assign.js +0 -27
- package/benchmarks/curry.js +0 -35
- package/benchmarks/eq.async.js +0 -23
- package/benchmarks/eq.js +0 -23
- package/benchmarks/every.async.js +0 -19
- package/benchmarks/every.js +0 -19
- package/benchmarks/filter.async.js +0 -32
- package/benchmarks/filter.js +0 -38
- package/benchmarks/flatMap.async.js +0 -26
- package/benchmarks/flatMap.js +0 -38
- package/benchmarks/get.async.js +0 -19
- package/benchmarks/get.js +0 -39
- package/benchmarks/gt.async.js +0 -23
- package/benchmarks/gt.js +0 -23
- package/benchmarks/gte.async.js +0 -23
- package/benchmarks/gte.js +0 -23
- package/benchmarks/lt.async.js +0 -23
- package/benchmarks/lt.js +0 -23
- package/benchmarks/lte.async.js +0 -23
- package/benchmarks/lte.js +0 -23
- package/benchmarks/map.async.js +0 -43
- package/benchmarks/map.js +0 -40
- package/benchmarks/misc/Promise.js +0 -26
- package/benchmarks/misc/isPromise.js +0 -30
- package/benchmarks/misc/promiseAll.js +0 -36
- package/benchmarks/not.js +0 -23
- package/benchmarks/omit.js +0 -38
- package/benchmarks/or.async.js +0 -25
- package/benchmarks/or.js +0 -25
- package/benchmarks/pick.js +0 -38
- package/benchmarks/pipe.async.js +0 -47
- package/benchmarks/pipe.js +0 -47
- package/benchmarks/reduce.async.js +0 -32
- package/benchmarks/reduce.js +0 -38
- package/benchmarks/set.async.js +0 -19
- package/benchmarks/set.js +0 -41
- package/benchmarks/some.async.js +0 -19
- package/benchmarks/some.js +0 -19
- package/benchmarks/switchCase.async.js +0 -27
- package/benchmarks/switchCase.js +0 -55
- package/benchmarks/tap.js +0 -15
- package/benchmarks/thunkify.js +0 -15
- package/benchmarks/transform.async.js +0 -27
- package/benchmarks/transform.js +0 -40
- package/benchmarks/tryCatch.async.js +0 -25
- package/benchmarks/tryCatch.js +0 -32
- package/build +0 -472
- package/dist-test.js +0 -37
- package/examples/type-to-search-wiki/README.md +0 -19
- package/examples/type-to-search-wiki/package.json +0 -13
- package/examples/type-to-search-wiki/src/app.js +0 -46
- package/examples/type-to-search-wiki/src/index.html +0 -18
- package/import-test.html +0 -73
- package/memory-usage/reduce.js +0 -40
- package/monad/AsyncPool.js +0 -0
- package/monad/BrokenPromise.js +0 -63
- package/monad/BrokenPromise.test.js +0 -22
- package/monad/Cancellable.js +0 -84
- package/monad/Cancellable.memoryUsage.js +0 -60
- package/monad/Cancellable.test.js +0 -20
- package/monad/Function.js +0 -0
- package/monad/Instance.benchmark.js +0 -378
- package/monad/Instance.js +0 -351
- package/monad/Instance.test.js +0 -445
- package/monad/Mux.benchmark.js +0 -29
- package/monad/Mux.js +0 -589
- package/monad/Mux.test.js +0 -512
- package/monad/PossiblePromise.benchmark.js +0 -87
- package/monad/PossiblePromise.js +0 -144
- package/monad/PossiblePromise.test.js +0 -89
- package/monad/README.md +0 -75
- package/monad/Reducer.js +0 -0
- package/monad/Sequence.benchmark.js +0 -42
- package/monad/Sequence.js +0 -36
- package/monad/SpecScript.js +0 -0
- package/monad/Stack.js +0 -0
- package/monad/Struct.benchmark.js +0 -154
- package/monad/Struct.js +0 -249
- package/monad/Struct.test.js +0 -237
- package/rubico.js +0 -66
- package/test.js +0 -4242
- package/tmp.js +0 -1
package/es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.2.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -125,12 +125,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
125
125
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
// argument resolver for curryArgs2
|
|
129
|
+
const curryArgs2ResolveArgs0 = (
|
|
130
|
+
baseFunc, arg1, arg2,
|
|
131
|
+
) => function args0Resolver(...args) {
|
|
132
|
+
return baseFunc(args, arg1)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// argument resolver for curryArgs2
|
|
136
|
+
const curryArgs2ResolveArgs1 = (
|
|
137
|
+
baseFunc, arg0, arg2,
|
|
138
|
+
) => function arg1Resolver(...args) {
|
|
139
|
+
return baseFunc(arg0, args)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
143
|
+
if (arg0 == __) {
|
|
144
|
+
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
145
|
+
}
|
|
146
|
+
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// _tap(args Array, func function) -> Promise|any
|
|
150
|
+
const _tap = function (args, func) {
|
|
129
151
|
const result = args[0],
|
|
130
152
|
call = func(...args)
|
|
131
153
|
return isPromise(call) ? call.then(always(result)) : result
|
|
132
154
|
}
|
|
133
155
|
|
|
156
|
+
const tap = function (...args) {
|
|
157
|
+
const func = args.pop()
|
|
158
|
+
if (args.length == 0) {
|
|
159
|
+
return curryArgs2(_tap, __, func)
|
|
160
|
+
}
|
|
161
|
+
return _tap(args, func)
|
|
162
|
+
}
|
|
163
|
+
|
|
134
164
|
tap.if = (predicate, func) => function tappingIf(...args) {
|
|
135
165
|
const predication = predicate(...args)
|
|
136
166
|
if (isPromise(predication)) {
|
|
@@ -148,27 +178,6 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
148
178
|
|
|
149
179
|
const isArray = Array.isArray
|
|
150
180
|
|
|
151
|
-
// argument resolver for curryArgs2
|
|
152
|
-
const curryArgs2ResolveArgs0 = (
|
|
153
|
-
baseFunc, arg1, arg2,
|
|
154
|
-
) => function args0Resolver(...args) {
|
|
155
|
-
return baseFunc(args, arg1)
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// argument resolver for curryArgs2
|
|
159
|
-
const curryArgs2ResolveArgs1 = (
|
|
160
|
-
baseFunc, arg0, arg2,
|
|
161
|
-
) => function arg1Resolver(...args) {
|
|
162
|
-
return baseFunc(arg0, args)
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
166
|
-
if (arg0 == __) {
|
|
167
|
-
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
168
|
-
}
|
|
169
|
-
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
181
|
const functionArrayAll = function (funcs, args) {
|
|
173
182
|
const funcsLength = funcs.length,
|
|
174
183
|
result = Array(funcsLength)
|
|
@@ -1447,43 +1456,45 @@ const callConcat = function (object, values) {
|
|
|
1447
1456
|
return object.concat(values)
|
|
1448
1457
|
}
|
|
1449
1458
|
|
|
1450
|
-
const identityTransform = function (collection, transducer,
|
|
1459
|
+
const identityTransform = function (collection, transducer, accum) {
|
|
1451
1460
|
const nil = genericReduce(collection, transducer(noop), null)
|
|
1452
|
-
return isPromise(nil) ? nil.then(always(
|
|
1461
|
+
return isPromise(nil) ? nil.then(always(accum)) : accum
|
|
1453
1462
|
}
|
|
1454
1463
|
|
|
1455
|
-
const genericTransform = function (collection, transducer,
|
|
1456
|
-
if (isArray(
|
|
1457
|
-
return genericReduce(collection, transducer(arrayExtend),
|
|
1464
|
+
const genericTransform = function (collection, transducer, accum) {
|
|
1465
|
+
if (isArray(accum)) {
|
|
1466
|
+
return genericReduce(collection, transducer(arrayExtend), accum)
|
|
1458
1467
|
}
|
|
1459
|
-
if (isBinary(
|
|
1468
|
+
if (isBinary(accum)) {
|
|
1460
1469
|
const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
|
|
1461
1470
|
return isPromise(intermediateArray)
|
|
1462
|
-
? intermediateArray.then(curry2(binaryExtend,
|
|
1463
|
-
: binaryExtend(
|
|
1471
|
+
? intermediateArray.then(curry2(binaryExtend, accum, __))
|
|
1472
|
+
: binaryExtend(accum, intermediateArray)
|
|
1464
1473
|
}
|
|
1465
|
-
if (
|
|
1466
|
-
return identityTransform(collection, transducer,
|
|
1474
|
+
if (accum == null) {
|
|
1475
|
+
return identityTransform(collection, transducer, accum)
|
|
1467
1476
|
}
|
|
1468
1477
|
|
|
1469
|
-
const
|
|
1470
|
-
if (typeof
|
|
1471
|
-
|
|
1472
|
-
return
|
|
1478
|
+
const constructor = accum.constructor
|
|
1479
|
+
if (typeof accum == 'string' || constructor == String) {
|
|
1480
|
+
const result = genericReduce(collection, transducer(arrayExtend), [accum])
|
|
1481
|
+
return isPromise(result)
|
|
1482
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
1483
|
+
: result.join('')
|
|
1473
1484
|
}
|
|
1474
|
-
if (typeof
|
|
1475
|
-
return genericReduce(collection, transducer(callConcat),
|
|
1485
|
+
if (typeof accum.concat == 'function') {
|
|
1486
|
+
return genericReduce(collection, transducer(callConcat), accum)
|
|
1476
1487
|
}
|
|
1477
|
-
if (typeof
|
|
1478
|
-
return genericReduce(collection, transducer(streamExtend),
|
|
1488
|
+
if (typeof accum.write == 'function') {
|
|
1489
|
+
return genericReduce(collection, transducer(streamExtend), accum)
|
|
1479
1490
|
}
|
|
1480
|
-
if (
|
|
1481
|
-
return genericReduce(collection, transducer(setExtend),
|
|
1491
|
+
if (constructor == Set) {
|
|
1492
|
+
return genericReduce(collection, transducer(setExtend), accum)
|
|
1482
1493
|
}
|
|
1483
|
-
if (
|
|
1484
|
-
return genericReduce(collection, transducer(objectAssign),
|
|
1494
|
+
if (constructor == Object) {
|
|
1495
|
+
return genericReduce(collection, transducer(objectAssign), accum)
|
|
1485
1496
|
}
|
|
1486
|
-
return identityTransform(collection, transducer,
|
|
1497
|
+
return identityTransform(collection, transducer, accum)
|
|
1487
1498
|
}
|
|
1488
1499
|
|
|
1489
1500
|
// _transform(collection any, transducer function, initialValue function|any) -> Promise
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.2.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -131,12 +131,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
131
131
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
// argument resolver for curryArgs2
|
|
135
|
+
const curryArgs2ResolveArgs0 = (
|
|
136
|
+
baseFunc, arg1, arg2,
|
|
137
|
+
) => function args0Resolver(...args) {
|
|
138
|
+
return baseFunc(args, arg1)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// argument resolver for curryArgs2
|
|
142
|
+
const curryArgs2ResolveArgs1 = (
|
|
143
|
+
baseFunc, arg0, arg2,
|
|
144
|
+
) => function arg1Resolver(...args) {
|
|
145
|
+
return baseFunc(arg0, args)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
149
|
+
if (arg0 == __) {
|
|
150
|
+
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
151
|
+
}
|
|
152
|
+
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// _tap(args Array, func function) -> Promise|any
|
|
156
|
+
const _tap = function (args, func) {
|
|
135
157
|
const result = args[0],
|
|
136
158
|
call = func(...args)
|
|
137
159
|
return isPromise(call) ? call.then(always(result)) : result
|
|
138
160
|
}
|
|
139
161
|
|
|
162
|
+
const tap = function (...args) {
|
|
163
|
+
const func = args.pop()
|
|
164
|
+
if (args.length == 0) {
|
|
165
|
+
return curryArgs2(_tap, __, func)
|
|
166
|
+
}
|
|
167
|
+
return _tap(args, func)
|
|
168
|
+
}
|
|
169
|
+
|
|
140
170
|
tap.if = (predicate, func) => function tappingIf(...args) {
|
|
141
171
|
const predication = predicate(...args)
|
|
142
172
|
if (isPromise(predication)) {
|
|
@@ -154,27 +184,6 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
154
184
|
|
|
155
185
|
const isArray = Array.isArray
|
|
156
186
|
|
|
157
|
-
// argument resolver for curryArgs2
|
|
158
|
-
const curryArgs2ResolveArgs0 = (
|
|
159
|
-
baseFunc, arg1, arg2,
|
|
160
|
-
) => function args0Resolver(...args) {
|
|
161
|
-
return baseFunc(args, arg1)
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// argument resolver for curryArgs2
|
|
165
|
-
const curryArgs2ResolveArgs1 = (
|
|
166
|
-
baseFunc, arg0, arg2,
|
|
167
|
-
) => function arg1Resolver(...args) {
|
|
168
|
-
return baseFunc(arg0, args)
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
172
|
-
if (arg0 == __) {
|
|
173
|
-
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
174
|
-
}
|
|
175
|
-
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
176
|
-
}
|
|
177
|
-
|
|
178
187
|
const functionArrayAll = function (funcs, args) {
|
|
179
188
|
const funcsLength = funcs.length,
|
|
180
189
|
result = Array(funcsLength)
|
|
@@ -1453,43 +1462,45 @@ const callConcat = function (object, values) {
|
|
|
1453
1462
|
return object.concat(values)
|
|
1454
1463
|
}
|
|
1455
1464
|
|
|
1456
|
-
const identityTransform = function (collection, transducer,
|
|
1465
|
+
const identityTransform = function (collection, transducer, accum) {
|
|
1457
1466
|
const nil = genericReduce(collection, transducer(noop), null)
|
|
1458
|
-
return isPromise(nil) ? nil.then(always(
|
|
1467
|
+
return isPromise(nil) ? nil.then(always(accum)) : accum
|
|
1459
1468
|
}
|
|
1460
1469
|
|
|
1461
|
-
const genericTransform = function (collection, transducer,
|
|
1462
|
-
if (isArray(
|
|
1463
|
-
return genericReduce(collection, transducer(arrayExtend),
|
|
1470
|
+
const genericTransform = function (collection, transducer, accum) {
|
|
1471
|
+
if (isArray(accum)) {
|
|
1472
|
+
return genericReduce(collection, transducer(arrayExtend), accum)
|
|
1464
1473
|
}
|
|
1465
|
-
if (isBinary(
|
|
1474
|
+
if (isBinary(accum)) {
|
|
1466
1475
|
const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
|
|
1467
1476
|
return isPromise(intermediateArray)
|
|
1468
|
-
? intermediateArray.then(curry2(binaryExtend,
|
|
1469
|
-
: binaryExtend(
|
|
1477
|
+
? intermediateArray.then(curry2(binaryExtend, accum, __))
|
|
1478
|
+
: binaryExtend(accum, intermediateArray)
|
|
1470
1479
|
}
|
|
1471
|
-
if (
|
|
1472
|
-
return identityTransform(collection, transducer,
|
|
1480
|
+
if (accum == null) {
|
|
1481
|
+
return identityTransform(collection, transducer, accum)
|
|
1473
1482
|
}
|
|
1474
1483
|
|
|
1475
|
-
const
|
|
1476
|
-
if (typeof
|
|
1477
|
-
|
|
1478
|
-
return
|
|
1484
|
+
const constructor = accum.constructor
|
|
1485
|
+
if (typeof accum == 'string' || constructor == String) {
|
|
1486
|
+
const result = genericReduce(collection, transducer(arrayExtend), [accum])
|
|
1487
|
+
return isPromise(result)
|
|
1488
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
1489
|
+
: result.join('')
|
|
1479
1490
|
}
|
|
1480
|
-
if (typeof
|
|
1481
|
-
return genericReduce(collection, transducer(callConcat),
|
|
1491
|
+
if (typeof accum.concat == 'function') {
|
|
1492
|
+
return genericReduce(collection, transducer(callConcat), accum)
|
|
1482
1493
|
}
|
|
1483
|
-
if (typeof
|
|
1484
|
-
return genericReduce(collection, transducer(streamExtend),
|
|
1494
|
+
if (typeof accum.write == 'function') {
|
|
1495
|
+
return genericReduce(collection, transducer(streamExtend), accum)
|
|
1485
1496
|
}
|
|
1486
|
-
if (
|
|
1487
|
-
return genericReduce(collection, transducer(setExtend),
|
|
1497
|
+
if (constructor == Set) {
|
|
1498
|
+
return genericReduce(collection, transducer(setExtend), accum)
|
|
1488
1499
|
}
|
|
1489
|
-
if (
|
|
1490
|
-
return genericReduce(collection, transducer(objectAssign),
|
|
1500
|
+
if (constructor == Object) {
|
|
1501
|
+
return genericReduce(collection, transducer(objectAssign), accum)
|
|
1491
1502
|
}
|
|
1492
|
-
return identityTransform(collection, transducer,
|
|
1503
|
+
return identityTransform(collection, transducer, accum)
|
|
1493
1504
|
}
|
|
1494
1505
|
|
|
1495
1506
|
// _transform(collection any, transducer function, initialValue function|any) -> Promise
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rubico",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "[a]synchronous functional programming",
|
|
5
5
|
"author": "Richard Tong",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,7 +9,48 @@
|
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "github:a-synchronous/rubico"
|
|
11
11
|
},
|
|
12
|
-
"homepage": "https://rubico.land",
|
|
12
|
+
"homepage": "https://rubico.land/",
|
|
13
|
+
"files": [
|
|
14
|
+
"_internal",
|
|
15
|
+
"dist",
|
|
16
|
+
"x",
|
|
17
|
+
"index.js",
|
|
18
|
+
"es.js",
|
|
19
|
+
"global.js",
|
|
20
|
+
"pipe.js",
|
|
21
|
+
"compose.js",
|
|
22
|
+
"tap.js",
|
|
23
|
+
"forEach.js",
|
|
24
|
+
"switchCase.js",
|
|
25
|
+
"tryCatch.js",
|
|
26
|
+
"all.js",
|
|
27
|
+
"assign.js",
|
|
28
|
+
"get.js",
|
|
29
|
+
"set.js",
|
|
30
|
+
"pick.js",
|
|
31
|
+
"omit.js",
|
|
32
|
+
"map.js",
|
|
33
|
+
"filter.js",
|
|
34
|
+
"flatMap.js",
|
|
35
|
+
"reduce.js",
|
|
36
|
+
"transform.js",
|
|
37
|
+
"and.js",
|
|
38
|
+
"or.js",
|
|
39
|
+
"not.js",
|
|
40
|
+
"some.js",
|
|
41
|
+
"every.js",
|
|
42
|
+
"eq.js",
|
|
43
|
+
"gt.js",
|
|
44
|
+
"lt.js",
|
|
45
|
+
"gte.js",
|
|
46
|
+
"lte.js",
|
|
47
|
+
"thunkify.js",
|
|
48
|
+
"always.js",
|
|
49
|
+
"curry.js",
|
|
50
|
+
"__.js",
|
|
51
|
+
"AggregateReducer.js",
|
|
52
|
+
"Transducer.js"
|
|
53
|
+
],
|
|
13
54
|
"keywords": [
|
|
14
55
|
"function-composition",
|
|
15
56
|
"asynchronous",
|
package/tap.js
CHANGED
|
@@ -3,13 +3,22 @@ const always = require('./_internal/always')
|
|
|
3
3
|
const thunkifyArgs = require('./_internal/thunkifyArgs')
|
|
4
4
|
const thunkConditional = require('./_internal/thunkConditional')
|
|
5
5
|
const curry3 = require('./_internal/curry3')
|
|
6
|
+
const curryArgs2 = require('./_internal/curryArgs2')
|
|
6
7
|
const __ = require('./_internal/placeholder')
|
|
7
8
|
|
|
9
|
+
// _tap(args Array, func function) -> Promise|any
|
|
10
|
+
const _tap = function (args, func) {
|
|
11
|
+
const result = args[0],
|
|
12
|
+
call = func(...args)
|
|
13
|
+
return isPromise(call) ? call.then(always(result)) : result
|
|
14
|
+
}
|
|
15
|
+
|
|
8
16
|
/**
|
|
9
17
|
* @name tap
|
|
10
18
|
*
|
|
11
19
|
* @synopsis
|
|
12
20
|
* ```coffeescript [specscript]
|
|
21
|
+
* tap(...args, func function) -> Promise|args[0]
|
|
13
22
|
* tap(func function)(...args) -> Promise|args[0]
|
|
14
23
|
* ```
|
|
15
24
|
*
|
|
@@ -28,10 +37,12 @@ const __ = require('./_internal/placeholder')
|
|
|
28
37
|
* // 'foobarbaz'
|
|
29
38
|
* ```
|
|
30
39
|
*/
|
|
31
|
-
const tap =
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
const tap = function (...args) {
|
|
41
|
+
const func = args.pop()
|
|
42
|
+
if (args.length == 0) {
|
|
43
|
+
return curryArgs2(_tap, __, func)
|
|
44
|
+
}
|
|
45
|
+
return _tap(args, func)
|
|
35
46
|
}
|
|
36
47
|
|
|
37
48
|
/**
|