iter-tools-es
Version:
The iterable toolbox
32 lines (26 loc) • 644 B
JavaScript
const {
isInteger
} = require('../../../internal/number.js');
const {
isObject
} = require('../../is-object/is-object.js');
const {
notUndefined
} = require('../../not-undefined/not-undefined.js');
const makeValidateArgs = methodName => function validateArgs(args) {
if (isObject(args[1])) {
const {
start,
step
} = args[1];
args[1] = start;
args[2] = step;
}
if (notUndefined(args[2])) {
args[2] = Number(args[2]);
if (!isInteger(args[2], true)) {
throw new Error(`step argument to ${methodName} must be a non-zero integer`);
}
}
};
exports.makeValidateArgs = makeValidateArgs;