crystalline
Version:
A modern utility library with a strong emphasis on readability. Make your code crystal clear.
38 lines (37 loc) • 1.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.alter = void 0;
var adjust_1 = __importDefault(require("ramda/src/adjust"));
var intersperse_1 = __importDefault(require("ramda/src/intersperse"));
var move_1 = __importDefault(require("ramda/src/move"));
var remove_1 = __importDefault(require("ramda/src/remove"));
var uniq_1 = __importDefault(require("ramda/src/uniq"));
var without_1 = __importDefault(require("ramda/src/without"));
var alter = function (arr) { return ({
byApplying: function (transformer) { return ({
atIndex: function (index) { return adjust_1.default(index, transformer, arr); },
}); },
byInsertingBetweenEachItem: function (value) { return intersperse_1.default(value, arr); },
byMovingItemAtIndex: function (fromIndex) { return ({
toIndex: function (toIndex) { return move_1.default(fromIndex, toIndex, arr); },
toTheStart: function () { return move_1.default(fromIndex, 0, arr); },
toTheEnd: function () { return move_1.default(fromIndex, arr.length - 1, arr); },
}); },
byRemovingItemsBetweenIndex: function (fromIndex) { return ({
andIndex: function (toIndex) { return remove_1.default(fromIndex, toIndex, arr); },
andTheEnd: function () { return remove_1.default(fromIndex, arr.length - 1, arr); },
}); },
byRemovingDuplicates: function () { return uniq_1.default(arr); },
byRemovingItemsEqualTo: function () {
var itemsToRemove = [];
for (var _i = 0; _i < arguments.length; _i++) {
itemsToRemove[_i] = arguments[_i];
}
return without_1.default(itemsToRemove, arr);
},
byRemovingFalsyItems: function () { return arr.filter(function (i) { return i; }); },
}); };
exports.alter = alter;