UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

35 lines (34 loc) 1.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const baseRange_1 = __importDefault(require("./baseRange")); const toFinite_1 = __importDefault(require("../toFinite")); const isIterateeCall_1 = __importDefault(require("./isIterateeCall")); /** * Creates a `range` or `rangeRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new range function. */ function createRange(fromRight) { return function (start, end, step) { if (step && typeof step != 'number' && (0, isIterateeCall_1.default)(start, end, step)) { end = step = undefined; } // Ensure the sign of `-0` is preserved. start = (0, toFinite_1.default)(start); if (end === undefined) { end = start; start = 0; } else { end = (0, toFinite_1.default)(end); } step = step === undefined ? (start < end ? 1 : -1) : (0, toFinite_1.default)(step); return (0, baseRange_1.default)(start, end, step, fromRight); }; } exports.default = createRange;