Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

exalted.future

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

exalted.future - npm Package Compare versions

Comparing version 0.0.34 to 0.0.35

dist/index.cjs

261

dist/index.umd.js

@@ -1,2 +0,259 @@

!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).exaltedFuture={})}(this,function(n){var t=function(n){return n},r=function(){},u=function(n){return null==n},e={Left:t,Right:t},i=function(n,r){return void 0===n&&(n=t),n(r)},c=function(n,t){return t.cata({Right:function(t){return n===t},Left:function(t){return n===t}})},o=function n(t){return{ap:function(n){return n.isLeft?n:n.map(function(n){return i(n,t)})},alt:function(){return n(t)},bimap:function(n,r){return i(r,t)},cata:function(n){return void 0===n&&(n=Identity),n.Right(t)},chain:function(n){return i(n,t)},equals:function(n){return c(t,n)},fold:function(n){return i(n,t)},foldl:function(n){return i(n,null)},foldr:function(n){return i(n,t)},inspect:function(){return"Right("+t+")"},isLeft:!1,map:function(r){return n(i(r,t))},of:function(t){return n(t)},swap:function(){return f(t)}}};o.of=function(n){return o(n)};var f=function n(t){return{ap:function(r){return r.isLeft?r:n(t)},alt:function(){return n(t)},bimap:function(n,r){return i(n,t)},cata:function(n){return void 0===n&&(n=Identity),n.Left(t)},chain:function(){return n(t)},map:function(){return n(t)},equals:function(n){return c(t,n)},fold:function(n){return i(n,t)},foldl:function(n){return i(n,t)},foldr:function(n){return i(n,null)},inspect:function(){return"Left("+t+")"},isLeft:!0,of:function(t){return n(t)},swap:function(){return o(t)}}};f.of=function(n){return f(n)};var l=function(n,t){return[f(n),o(t)]},p=function(n){try{return o(i(n,null))}catch(n){return f(n)}};l.encase=p,o.encase=p,f.encase=p,l.error=function(n){return function(t){return u(n)?o(t):f(n)}};var s=function(n){return function(t){return h(function(r,u){try{n(function(n){return r(n)},function(n){return t(n).cata({Left:r,Right:u})})}catch(n){r(n)}})}},d=function(n){return function(t){return h(function(r,u){return h(n).cata({Left:function(n){var e=t(n);e.chain?e.chain(u):r(e)},Right:u})})}},h=function n(r){return{ap:function(){return n(r)},alt:d(r),bimap:function(){return n(r)},map:function(t){return s(r)(function(r){return n.of(t(r))})},cata:function(n){return r(n.Left,n.Right)},chain:s(r),equals:function(){return!1},fold:function(n){return r(n,n)},foldl:function(n){return r(n,t)},foldr:function(n){return r(t,n)},inspect:function(){return"Future(?)"},of:function(t){return n.of(t)},swap:function(){return n(r)}}};h.encase=function(n){try{var t=n();return h(function(n,r){return r(t)})}catch(n){return h(function(t){return t(n)})}},h.of=function(n){return h(function(t,r){return r(n)})},h.promise=function(n){return h(function(t,r){return h.promise(n.then(r,t).catch(t))})};var g=function(n){return h(function(t,r,u){return void 0===u&&(u=!1),n.reduce(function(e,i,c){return i.cata({Left:function(n){return!u&&(u=!0,t(n))},Right:function(t){return e[c]=t,!u&&e.filter(function(n){return void 0!==n}).length===n.length&&r(e)}}),e},[])})};h.all=function(){var n;return g((n=[]).concat.apply(n,[].slice.call(arguments)))};var v=function n(t){return{ap:function(n){return n.map(function(n){return i(n,t)})},alt:function(){return n(t)},bimap:function(n,r){return i(r,t)},cata:function(n){return void 0===n&&(n=e),n.Right(t)},chain:function(n){return i(n,t)},equals:function(n){return n.cata({Right:function(n){return t===n}})},fold:function(n){return i(n,t)},foldl:function(n){return i(n,null)},foldr:function(n){return i(n,t)},map:function(r){return n(i(r,t))},of:function(t){return n(t)},inspect:function(){return"Id("+t+")"},swap:function(){return n(t)}}};v.of=function(n){return v(n)};var m=function n(){return{ap:function(){return n()},bimap:function(n,t){return i(n,null)},cata:function(n){return void 0===n&&(n=e),n.Left(null)},chain:function(){return n()},alt:function(n){return L(i(n,null))},equals:function(n){return n.cata({Right:function(n){return u(n)}})},fold:r,foldl:r,foldr:r,inspect:function(){return"Nothing()"},map:function(){return n()},of:function(n){return L(n)},swap:function(){return R(a)}}};m.of=function(){return m()};var R=function n(t){return{ap:function(n){return n.map(function(n){return n(t)})},bimap:function(n,r){return i(r,t)},cata:function(n){return void 0===n&&(n=e),n.Right(t)},chain:function(n){return i(n,t)},alt:function(){return n(t)},equals:function(n){return n.cata({Right:function(n){return t===n}})},fold:function(n){return i(n,t)},foldl:r,foldr:function(n){return i(n,t)},inspect:function(){return"Just("+t+")"},map:function(n){return L(i(n,t))},of:function(n){return L(n)},swap:function(){return m()}}};R.of=function(n){return R(n)};var y=function(n){try{return L(i(n,null))}catch(n){return m()}};R.encase=y,m.encase=y;var L=function(n){return u(n)?m():R(n)};L.of=function(n){return L(n)},L.encase=y,n.Either=l,n.Future=h,n.Id=v,n.Identity=e,n.Just=R,n.Left=f,n.Maybe=L,n.Nothing=m,n.Right=o,n.compose=function(){var n=[].slice.call(arguments);return function(){var t;return n.slice(0,n.length-1).reduceRight(function(n,t){return t(n)},(t=n.slice(n.length-1))[0].apply(t,[].slice.call(arguments)))}},n.get=function(){var n=arguments;return function(t){return[].slice.call(n).reduce(function(n,t){return n.map(function(n){return n&&n[t]})},L(t))}},n.head=function(n){return n.length>0?L(n[0]):m()},n.id=t,n.iff=i,n.isNull=u,n.last=function(n){return n.length>0?L(n[n.length-1]):m()},n.log=function(){var n,t=[].slice.call(arguments);return(n=console).log.apply(n,t),t[0]},n.map=function(){var n=arguments;return function(t){return[].slice.call(n).reduceRight(function(n,t){return n.map(t)},t)}},n.noop=r,n.nullable=function(n){return u(n)?f(n):o(n)},n.tail=function(n){return n.length>0?L(n.slice(1)):m()}});
//# sourceMappingURL=index.umd.js.map
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.exalted = global.exalted || {}, global.exalted.future = {})));
}(this, (function (exports) { 'use strict';
const compose = (...rest) => (...a) =>
rest
.slice(0, rest.length - 1)
.reduceRight((acc, func) => func(acc), rest.slice(rest.length - 1)[0](...a));
const map = (...functions) => functor =>
functions.reduceRight((functor, f) => functor.map(f), functor);
const id = a => a;
const noop = () => {};
const isNull = value => value === null || value === undefined;
const Identity$1 = { Left: id, Right: id };
const iff = (f = id, a) => f(a);
const log = (...a) => (console.log(...a), a[0]);
const eq = (a, r) => r.cata({ Right: b => a === b, Left: b => a === b });
const Right = a => ({
ap: app => (app.isLeft ? app : app.map(b => iff(b, a))),
alt: () => Right(a),
bimap: (_, r) => iff(r, a),
cata: (f = Identity) => f.Right(a),
chain: f => iff(f, a),
equals: r => eq(a, r),
fold: f => iff(f, a),
foldl: f => iff(f, null),
foldr: f => iff(f, a),
inspect: () => 'Right(' + a + ')',
isLeft: false,
map: f => Right(iff(f, a)),
of: a => Right(a),
swap: () => Left(a)
});
Right.of = a => Right(a);
const Left = a => ({
ap: app => (app.isLeft ? app : Left(a)),
alt: () => Left(a),
bimap: (l, _) => iff(l, a),
cata: (f = Identity) => f.Left(a),
chain: () => Left(a),
map: () => Left(a),
equals: l => eq(a, l),
fold: f => iff(f, a),
foldl: f => iff(f, a),
foldr: f => iff(f, null),
inspect: () => 'Left(' + a + ')',
isLeft: true,
of: a => Left(a),
swap: () => Right(a)
});
Left.of = a => Left(a);
const nullable = x => (isNull(x) ? Left(x) : Right(x));
const Either = (l, r) => [Left(l), Right(r)];
const encase = f => {
try {
return Right(iff(f, null))
} catch (err) {
return Left(err)
}
};
Either.encase = encase;
Right.encase = encase;
Left.encase = encase;
Either.error = error => right => (isNull(error) ? Right(right) : Left(error));
const chain = action => f =>
Future((l, r) => {
try {
action(e => l(e), d => f(d).cata({ Left: l, Right: r }));
} catch (e) {
l(e);
}
});
const alt = action => alt =>
Future((l, r) =>
Future(action).cata({
Left: a => {
const b = alt(a);
b.chain ? b.chain(r) : l(b);
},
Right: r
}));
const Future = action => ({
ap: () => Future(action),
alt: alt(action),
bimap: () => Future(action),
map: func => chain(action)(x => Future.of(func(x))),
cata: f => action(f.Left, f.Right),
chain: chain(action),
equals: () => false,
fold: f => action(f, f),
foldl: f => action(f, id),
foldr: f => action(id, f),
inspect: () => 'Future(?)',
of: a => Future.of(a),
swap: () => Future(action)
});
Future.encase = f => {
try {
const a = f();
return Future((_, r) => r(a))
} catch (e) {
return Future(l => l(e))
}
};
Future.of = x => Future((_, resolve) => resolve(x));
Future.promise = promise =>
Future((reject, resolve) => Future.promise(promise.then(resolve, reject).catch(reject)));
const all = futures =>
Future((left, right, errored = false) =>
futures.reduce(
(results, future, i) => (
future.cata({
Left: error => !errored && ((errored = true), left(error)),
Right: result => (
(results[i] = result),
!errored &&
results.filter(a => a !== undefined).length === futures.length &&
right(results))
}),
results
),
[]
));
Future.all = (...futures) => all([].concat(...futures));
const Id = a => ({
ap: app => app.map(f => iff(f, a)),
alt: () => Id(a),
bimap: (_, r) => iff(r, a),
cata: (f = Identity$1) => f.Right(a),
chain: f => iff(f, a),
equals: id => id.cata({ Right: b => a === b }),
fold: f => iff(f, a),
foldl: f => iff(f, null),
foldr: f => iff(f, a),
map: f => Id(iff(f, a)),
of: a => Id(a),
inspect: () => 'Id(' + a + ')',
swap: () => Id(a)
});
Id.of = a => Id(a);
const Nothing = () => ({
ap: () => Nothing(),
bimap: (l, _) => iff(l, null),
cata: (f = Identity$1) => f.Left(null),
chain: () => Nothing(),
alt: f => Maybe(iff(f, null)),
equals: id => id.cata({ Right: b => isNull(b) }),
fold: noop,
foldl: noop,
foldr: noop,
inspect: () => 'Nothing()',
map: () => Nothing(),
of: a => Maybe(a),
swap: () => Just(a)
});
Nothing.of = () => Nothing();
const Just = a => ({
ap: app => app.map(f => f(a)),
bimap: (_, r) => iff(r, a),
cata: (f = Identity$1) => f.Right(a),
chain: f => iff(f, a),
alt: () => Just(a),
equals: id => id.cata({ Right: b => a === b }),
fold: f => iff(f, a),
foldl: noop,
foldr: f => iff(f, a),
inspect: () => 'Just(' + a + ')',
map: f => Maybe(iff(f, a)),
of: a => Maybe(a),
swap: () => Nothing()
});
Just.of = a => Just(a);
const encase$1 = f => {
try {
return Maybe(iff(f, null))
} catch (_) {
return Nothing()
}
};
Just.encase = encase$1;
Nothing.encase = encase$1;
const Maybe = a => (isNull(a) ? Nothing() : Just(a));
Maybe.of = a => Maybe(a);
Maybe.encase = encase$1;
const head = list => (list.length > 0 ? Maybe(list[0]) : Nothing());
const tail = list => (list.length > 0 ? Maybe(list.slice(1)) : Nothing());
const last = list => (list.length > 0 ? Maybe(list[list.length - 1]) : Nothing());
const get = (...args) => a => args.reduce((acc, b) => acc.map(c => c && c[b]), Maybe(a));
exports.Either = Either;
exports.Future = Future;
exports.Id = Id;
exports.Identity = Identity$1;
exports.Just = Just;
exports.Left = Left;
exports.Maybe = Maybe;
exports.Nothing = Nothing;
exports.Right = Right;
exports.compose = compose;
exports.get = get;
exports.head = head;
exports.id = id;
exports.iff = iff;
exports.isNull = isNull;
exports.last = last;
exports.log = log;
exports.map = map;
exports.noop = noop;
exports.nullable = nullable;
exports.tail = tail;
Object.defineProperty(exports, '__esModule', { value: true });
})));

27

package.json
{
"name": "exalted.future",
"version": "0.0.34",
"version": "0.0.35",
"description": "Exalted monadic library & functional fun, fantasy-land compliant, mostly.",

@@ -8,9 +8,5 @@ "repository": "https://github.com/pre63/exalted.future.git",

"license": "Apache-2.0",
"source": "src/index.js",
"main": "dist/index.js",
"esmodule": "dist/index.modern.js",
"browser": "dist/index.modern.js",
"module": "dist/index.module.js",
"unpkg": "dist/index.umd.js",
"umd:main": "dist/index.umd.js",
"main": "dist/index.cjs",
"module": "dist/index.esm.js",
"browser": "dist/index.umd.js",
"type": "module",

@@ -20,6 +16,8 @@ "private": false,

"scripts": {
"build": "microbundle build --raw",
"rollup": "./node_modules/.bin/rollup -c",
"build": "yarn rollup",
"prebuild": "rm -rf dist",
"pub": "yarn test && yarn publish",
"test": "jest ./tests/*",
"pub": "yarn publish",
"prepub": "yarn test",
"test": "jest ./ci/*",
"pretest": "yarn build",

@@ -29,4 +27,9 @@ "specs": "node --experimental-vm-modules ./node_modules/.bin/jest ./specs/* --coverage"

"devDependencies": {
"@babel/preset-env": "^7.12.1",
"@rollup/plugin-babel": "^5.2.1",
"@rollup/plugin-commonjs": "^16.0.0",
"@rollup/plugin-node-resolve": "^10.0.0",
"jest": "^26.6.1",
"microbundle": "^0.12.4"
"rollup": "^2.32.1",
"rollup-plugin-sizes": "^1.0.3"
},

@@ -33,0 +36,0 @@ "files": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc