UNPKG

@braze/web-sdk

Version:

Braze SDK for web sites and other JS platforms.

101 lines (100 loc) 2.67 kB
import { logger as N } from "../../shared-lib/index.js"; export function values(t) { const e = []; let r; for (const n in t) (r = n), Object.prototype.hasOwnProperty.call(t, r) && void 0 !== t[r] && e.push(t[r]); return e; } export function validateValueIsFromEnum(t, e, r, n) { const o = values(t); return ( -1 !== o.indexOf(e) || (N.error(`${r} Valid values from ${n} are "${o.join('"/"')}".`), !1) ); } export function isArray(t) { return Array.isArray ? Array.isArray(t) : "[object Array]" === Object.prototype.toString.call(t); } export function isDate(t) { return "[object Date]" === Object.prototype.toString.call(t); } export function isObject(t) { return "[object Object]" === Object.prototype.toString.call(t); } export function intersection(t, ...e) { null == t && (t = []); const r = [], n = arguments.length; for (let e = 0, o = t.length; e < o; e++) { const o = t[e]; if (-1 !== r.indexOf(o)) continue; let c = 1; for (c = 1; c < n && -1 !== arguments[c].indexOf(o); c++); c === n && r.push(o); } return r; } export function keys(t) { const e = []; for (const r in t) Object.prototype.hasOwnProperty.call(t, r) && e.push(r); return e; } export function isEqual(t, e) { if (t === e) return 0 !== t || 1 / t == 1 / e; if (null == t || null == e) return t === e; const r = t.toString(); if (r !== e.toString()) return !1; switch (r) { case "[object RegExp]": case "[object String]": return "" + t == "" + e; case "[object Number]": return +t != +t ? +e != +e : 0 == +t ? 1 / +t == 1 / e : +t == +e; case "[object Date]": case "[object Boolean]": return +t == +e; } const n = "[object Array]" === r; if (!n) { if ("object" != typeof t || "object" != typeof e) return !1; const r = t.constructor, n = e.constructor; if ( r !== n && !( "function" == typeof r && r instanceof r && "function" == typeof n && n instanceof n ) && "constructor" in t && "constructor" in e ) return !1; } const o = [], c = []; let i = o.length; for (; i--; ) if (o[i] === t) return c[i] === e; if ((o.push(t), c.push(e), n)) { if (((i = t.length), i !== e.length)) return !1; for (; i--; ) if (!isEqual(t[i], e[i])) return !1; } else { const r = keys(t); let n; if (((i = r.length), keys(e).length !== i)) return !1; for (; i--; ) if ( ((n = r[i]), !Object.prototype.hasOwnProperty.call(e, n) || !isEqual(t[n], e[n])) ) return !1; } return o.pop(), c.pop(), !0; }