UNPKG

victory-core

Version:
41 lines (40 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IMMUTABLE_RECORD = exports.IMMUTABLE_MAP = exports.IMMUTABLE_LIST = exports.IMMUTABLE_ITERABLE = void 0; exports.isImmutable = isImmutable; exports.isIterable = isIterable; exports.isList = isList; exports.isMap = isMap; exports.isRecord = isRecord; exports.shallowToJS = shallowToJS; const IMMUTABLE_ITERABLE = exports.IMMUTABLE_ITERABLE = "@@__IMMUTABLE_ITERABLE__@@"; const IMMUTABLE_RECORD = exports.IMMUTABLE_RECORD = "@@__IMMUTABLE_RECORD__@@"; const IMMUTABLE_LIST = exports.IMMUTABLE_LIST = "@@__IMMUTABLE_LIST__@@"; const IMMUTABLE_MAP = exports.IMMUTABLE_MAP = "@@__IMMUTABLE_MAP__@@"; function isIterable(x) { return !!(x && x[IMMUTABLE_ITERABLE]); } function isRecord(x) { return !!(x && x[IMMUTABLE_RECORD]); } function isImmutable(x) { return isIterable(x) || isRecord(x); } function isList(x) { return !!(x && x[IMMUTABLE_LIST]); } function isMap(x) { return !!(x && x[IMMUTABLE_MAP]); } function shallowToJS(x, whitelist) { return isIterable(x) ? x.reduce((result, curr, key) => { let newCurr = curr; if (whitelist && whitelist[key]) { newCurr = shallowToJS(curr); } result[key] = newCurr; return result; }, isList(x) ? [] : {}) : x; }