UNPKG

crystalline

Version:

A modern utility library with a strong emphasis on readability. Make your code crystal clear.

38 lines (37 loc) 1.92 kB
"use strict"; 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;