@naverpay/hidash
Version:
improved lodash
29 lines (28 loc) • 1.15 kB
JavaScript
import { eq as e } from "./eq.mjs";
import { isArrayLike as u } from "./internal/array.mjs";
import { isObject as y } from "./isObject.mjs";
const c = 1 / 0, I = /^(?:0|[1-9]\d*)$/, b = (r, i, n) => {
let f = Math.max(Math.ceil((i - r) / (n || 1)), 0);
const t = Array(f);
let m = -1;
for (; f--; )
t[++m] = r, r += n;
return t;
};
function s(r, i) {
if (r === void 0)
return Number.MAX_SAFE_INTEGER;
const n = typeof r;
return i = i == null ? Number.MAX_SAFE_INTEGER : i, !!i && (n === "number" || n !== "symbol" && I.test(String(r))) && r > -1 && r % 1 === 0 && r < i;
}
function o(r) {
return r ? (r = Number(r), r === c || r === -1 / 0 ? (r < 0 ? -1 : 1) * Number.MAX_VALUE : r) : r === 0 ? r : 0;
}
function A(r, i, n) {
return !y(n) || typeof i > "u" ? !1 : (typeof i == "number" ? u(n) && s(i, n.length) : typeof i == "string" && i in n) ? e(i ? [i] : Symbol("any"), r) : !1;
}
const _ = (r, i, n) => (n && typeof n != "number" && A(r, i, n) && (i = n = void 0), r = o(r), i === void 0 ? (i = r, r = 0) : i = o(i), n = n === void 0 ? r < i ? 1 : -1 : o(n), b(r, i, n));
export {
_ as default,
_ as range
};