mframejs
Version:
simple framework
90 lines • 3.12 kB
JavaScript
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