UNPKG

@naverpay/hidash

Version:

improved lodash

29 lines (28 loc) 1.15 kB
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 };