f-utility
Version:
functional utilities
357 lines (294 loc) • 13.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.I = exports.K = exports.remapArray = exports.remap = exports.curryObjectKN = exports.curryObjectN = exports.curryObjectK = exports.curryify = exports.PLACEHOLDER = exports.$ = exports.every = exports.some = exports.which = exports.anyLength = exports.objectLength = exports.length = exports.not = exports.invert = exports.alterFirstIndex = exports.alterLastIndex = exports.flip = exports.mapKeys = exports.mapTuple = exports.mapTuples = exports.reduce = exports.filter = exports.flatMap = exports.chain = exports.triplet = exports.ternary = exports.symmetricDifference = exports.subtract = exports.startsWith = exports.sort = exports.relativeIndex = exports.reject = exports.range = exports.prop = exports.propSatisfies = exports.propOr = exports.propIs = exports.propEq = exports.pow = exports.path = exports.pathSatisfies = exports.pathOr = exports.pathEq = exports.pairwiseObject = exports.pairwise = exports.multiply = exports.merge = exports.map = exports.lastIndexOf = exports.iterate = exports.indexOf = exports.equals = exports.equal = exports.endsWith = exports.divide = exports.difference = exports.choice = exports.ap = exports.alterIndex = exports.add = exports.isObject = exports.isString = exports.isFunction = exports.isNumber = exports.isBoolean = exports.isTypeof = exports.substr = exports.replace = exports.padStart = exports.padEnd = exports.split = exports.search = exports.repeat = exports.match = exports.join = exports.fork = exports.fold = exports.concat = exports.codePointAt = exports.charAt = exports.trim = exports.isNil = exports.isArray = exports.fromPairs = exports.toPairs = exports.entries = exports.freeze = exports.assign = exports.keys = exports.isPOJO = exports.isDistinctObject = exports.compose = exports.pipe = exports.curry = exports.random = exports.round = undefined;
var _assign = require("object-assign");
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _object = require("./object");
Object.defineProperty(exports, "keys", {
enumerable: true,
get: function get() {
return _object.keys;
}
});
Object.defineProperty(exports, "assign", {
enumerable: true,
get: function get() {
return _object.assign;
}
});
Object.defineProperty(exports, "freeze", {
enumerable: true,
get: function get() {
return _object.freeze;
}
});
Object.defineProperty(exports, "entries", {
enumerable: true,
get: function get() {
return _object.entries;
}
});
var _types = require("./types");
Object.defineProperty(exports, "isArray", {
enumerable: true,
get: function get() {
return _types.isArray;
}
});
var _debug = require("katsu-curry/debug");
Object.defineProperty(exports, "$", {
enumerable: true,
get: function get() {
return _debug.$;
}
});
Object.defineProperty(exports, "PLACEHOLDER", {
enumerable: true,
get: function get() {
return _debug.PLACEHOLDER;
}
});
Object.defineProperty(exports, "curryify", {
enumerable: true,
get: function get() {
return _debug.curryify;
}
});
Object.defineProperty(exports, "curryObjectK", {
enumerable: true,
get: function get() {
return _debug.curryObjectK;
}
});
Object.defineProperty(exports, "curryObjectN", {
enumerable: true,
get: function get() {
return _debug.curryObjectN;
}
});
Object.defineProperty(exports, "curryObjectKN", {
enumerable: true,
get: function get() {
return _debug.curryObjectKN;
}
});
Object.defineProperty(exports, "remap", {
enumerable: true,
get: function get() {
return _debug.remap;
}
});
Object.defineProperty(exports, "remapArray", {
enumerable: true,
get: function get() {
return _debug.remapArray;
}
});
Object.defineProperty(exports, "K", {
enumerable: true,
get: function get() {
return _debug.K;
}
});
Object.defineProperty(exports, "I", {
enumerable: true,
get: function get() {
return _debug.I;
}
});
var _flatmapFast = require("flatmap-fast");
var _flatmapFast2 = _interopRequireDefault(_flatmapFast);
var _reduce = require("fast.js/reduce");
var _reduce2 = _interopRequireDefault(_reduce);
var _filter = require("fast.js/filter");
var _filter2 = _interopRequireDefault(_filter);
var _some = require("fast.js/array/some");
var _some2 = _interopRequireDefault(_some);
var _every = require("fast.js/array/every");
var _every2 = _interopRequireDefault(_every);
var _debug2 = require("entrust/debug");
var _ap = require("./ap");
var _choice = require("./choice");
var _iterate = require("./iterate");
var _map = require("./map");
var _range = require("./range");
var _reject = require("./reject");
var _ternary = require("./ternary");
var _triplet = require("./triplet");
var _invert2 = require("./invert");
var _string = require("./string");
var _array = require("./array");
var _delegateFast = require("./delegate-fast");
var _math = require("./math");
var _path = require("./path");
var _random2 = require("./random");
var _randomFloor = require("./random-floor");
var f = _interopRequireWildcard(_randomFloor);
var _randomTake = require("./random-take");
var t = _interopRequireWildcard(_randomTake);
var _randomWord = require("./random-word");
var w = _interopRequireWildcard(_randomWord);
var _randomShuffle = require("./random-shuffle");
var s = _interopRequireWildcard(_randomShuffle);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var round = exports.round = _math.round;
round.toString = function () {
return "~(?)";
};
var random = exports.random = _assign(_random2.random, f, t, w, s);
random.toString = function () {
return "\uD83D\uDC7E (?)";
};
var curry = exports.curry = _debug.curry;
curry.toString = function () {
return "\uD83C\uDF5B (?)";
};
var pipe = exports.pipe = _debug.pipe;
pipe.toString = function () {
return "\uD83C\uDF61 (?)";
};
var compose = exports.compose = _debug.compose;
compose.toString = function () {
return "\uD83D\uDE43 \uD83C\uDF61 (?)";
};
var isDistinctObject = exports.isDistinctObject = _types.isDistinctObject;
isDistinctObject.toString = function () {
return "isTrueObject(?)";
};
var isPOJO = exports.isPOJO = isDistinctObject;
var toPairs = exports.toPairs = _object.toPairs;
toPairs.toString = function () {
return "\u15D5(?)";
};
var fromPairs = exports.fromPairs = _object.fromPairs;
fromPairs.toString = function () {
return "\u15D2(?)";
};
var isNil = exports.isNil = curry(_types.isNil);
isNil.toString = function () {
return "curry(__isTypeof)(null)(?)";
};
var trim = exports.trim = (0, _debug2.e0)("trim");
var charAt = exports.charAt = (0, _debug2.e1)("charAt");
var codePointAt = exports.codePointAt = (0, _debug2.e1)("codePointAt");
var concat = exports.concat = (0, _debug2.e1)("concat");
var fold = exports.fold = (0, _debug2.e2)("fold");
var fork = exports.fork = (0, _debug2.e2)("fork");
var join = exports.join = (0, _debug2.e1)("join");
var match = exports.match = (0, _debug2.e1)("match");
var repeat = exports.repeat = (0, _debug2.e1)("repeat");
var search = exports.search = (0, _debug2.e1)("search");
var split = exports.split = (0, _debug2.e1)("split");
// const endsWithLength = e2(`endsWith`)
// const indexOfFromIndex = e2(`indexOf`)
// export const lastIndexOfFromIndex = e2(`lastIndexOf`)
var padEnd = exports.padEnd = (0, _debug2.e2)("padEnd");
var padStart = exports.padStart = (0, _debug2.e2)("padStart");
var replace = exports.replace = (0, _debug2.e2)("replace");
// export const startsWithFromPosition = e2(`startsWith`)
var substr = exports.substr = (0, _debug2.e2)("substr");
// BINARY
var isTypeof = exports.isTypeof = curry(_types.__isTypeof);
var isBoolean = exports.isBoolean = isTypeof("boolean");
var isNumber = exports.isNumber = isTypeof("number");
var isFunction = exports.isFunction = isTypeof("function");
var isString = exports.isString = isTypeof("string");
var isObject = exports.isObject = isTypeof("object");
// const delegateFastBinary = curry(__delegateFastBinary)
// const delegateFastTertiary = curry(__delegateFastTertiary)
var add = exports.add = curry(_math.__add);
var alterIndex = exports.alterIndex = curry(_array.__alterIndex);
var ap = exports.ap = curry(_ap.__ap);
var choice = exports.choice = curry(_choice.__choice);
var difference = exports.difference = curry(_array.__difference);
var divide = exports.divide = curry(_math.__divide);
var endsWith = exports.endsWith = curry(_string.__endsWith);
var equal = exports.equal = curry(_math.__equals);
var equals = exports.equals = equal;
var indexOf = exports.indexOf = curry(_string.__indexOf);
var iterate = exports.iterate = curry(_iterate.__iterate);
var lastIndexOf = exports.lastIndexOf = curry(_string.__lastIndexOf);
var map = exports.map = curry(_map.__map);
var merge = exports.merge = curry(_object.__merge);
var multiply = exports.multiply = curry(_math.__multiply);
var pairwise = exports.pairwise = curry(_object.__pairwise);
var pairwiseObject = exports.pairwiseObject = curry(_object.__pairwiseObject);
var pathEq = exports.pathEq = curry(_path.__pathEq);
var pathOr = exports.pathOr = curry(_path.__pathOr);
var pathSatisfies = exports.pathSatisfies = curry(_path.__pathSatisfies);
var path = exports.path = pathOr(null);
var pow = exports.pow = curry(_math.__pow);
var propEq = exports.propEq = curry(_path.__propEq);
var propIs = exports.propIs = curry(_path.__propIs);
var propOr = exports.propOr = curry(_path.__propOr);
var propSatisfies = exports.propSatisfies = curry(_path.__propSatisfies);
var prop = exports.prop = propOr(null);
var range = exports.range = curry(_range.__range);
var reject = exports.reject = curry(_reject.__reject);
var relativeIndex = exports.relativeIndex = curry(_array.__relativeIndex);
var sort = exports.sort = curry(_array.__sort);
var startsWith = exports.startsWith = curry(_string.__startsWith);
var subtract = exports.subtract = curry(_math.__subtract);
var symmetricDifference = exports.symmetricDifference = curry(_array.__symmetricDifference);
var ternary = exports.ternary = curry(_ternary.__ternary);
var triplet = exports.triplet = curry(_triplet.__triplet);
var chain = exports.chain = curry(function __chain(fn, functor) {
return (0, _delegateFast.__delegateFastBinary)("chain", _flatmapFast2["default"], fn, functor);
});
var flatMap = exports.flatMap = chain;
var filter = exports.filter = curry(function __filter(fn, functor) {
return (0, _delegateFast.__delegateFastBinary)("filter", _filter2["default"], fn, functor);
});
var reduce = exports.reduce = curry(function __reduce(fn, initial, functor) {
return (0, _delegateFast.__delegateFastTertiary)("reduce", _reduce2["default"], fn, initial, functor);
});
var mapTuples = exports.mapTuples = pairwiseObject(map);
var mapTuple = exports.mapTuple = mapTuples;
var __mapKeys = function __mapKeys(fn, o) {
return mapTuples(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
k = _ref2[0],
v = _ref2[1];
return [fn(k), v];
}, o);
};
var mapKeys = exports.mapKeys = curry(__mapKeys);
var flip = exports.flip = function flip(fn) {
return curry(function __flip(a, b) {
return fn(b, a);
});
};
flip.toString = function () {
return "\uD83D\uDE43 \uD83C\uDF5B (?)";
};
var alterLastIndex = exports.alterLastIndex = alterIndex(-1);
var alterFirstIndex = exports.alterFirstIndex = alterIndex(0);
var invert = exports.invert = _invert2.invert;
var not = exports.not = _invert2.not;
var propLength = prop("length");
var length = exports.length = propLength;
var objectLength = exports.objectLength = pipe(Object.keys, propLength);
var anyLength = exports.anyLength = function anyLength(x) {
return typeof x === "object" ? objectLength(x) : propLength(x);
};
anyLength.toString = function () {
return "length(?)";
};
var which = exports.which = curry(function __which(compare, fn, o) {
// allows us to pass functions to compare first
var arecomp = flip(compare);
return triplet(Array.isArray, arecomp(fn), pipe(Object.keys, arecomp(function (key) {
return fn(o[key], key);
})), o);
});
_some2["default"].toString = function () {
return "some";
};
var some = exports.some = which(_some2["default"]);
_every2["default"].toString = function () {
return "every";
};
var every = exports.every = which(_every2["default"]);