UNPKG

mframejs

Version:
90 lines 3.12 kB
import { getCorrectContext } from './contextOfObject'; import { Cache } from '../utils/exported'; export function setValue(_class, key, value) { _class = getCorrectContext(key, _class); _class = _class.__bindingContext ? _class.$context : _class; const keys = Cache.keyMaps.getCreate(key); try { let ref; if (keys.length > 1) { keys.forEach((prop, i) => { if (prop) { if (i === keys.length - 1) { ref[prop] = value; } else { if (i === 0) { ref = _class[prop]; } else { ref = ref[prop]; } } } }); } else { _class[key] = value; } } catch (e) { try { console.warn('key not found, rebuilding', key); let newObject = {}; let ref; keys.forEach((prop, i) => { if (prop) { if (i === keys.length - 1) { if (i === 0) { newObject[prop] = {}; ref = newObject[prop]; } else { ref[prop] = value; } } else { if (i === 0) { newObject[prop] = {}; ref = newObject[prop]; } else { ref[prop] = {}; ref = ref[prop]; } } } }); let classRef = _class; keys.forEach((prop, i) => { if (prop) { if (i === keys.length - 1) { if (!classRef[prop]) { classRef[prop] = newObject[prop]; } } else { if (i === 0) { if (!classRef[prop]) { classRef[prop] = newObject[prop]; } newObject = newObject[prop]; classRef = classRef[prop]; } else { if (!classRef[prop]) { classRef[prop] = newObject[prop]; } newObject = newObject[prop]; classRef = classRef[prop]; } } } }); } catch (e) { console.error('key not found', key); } } } //# sourceMappingURL=setValue.js.map