@newdash/newdash
Version:
javascript/typescript utility library
35 lines (34 loc) • 1.28 kB
JavaScript
;
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;