UNPKG

solutaaliquid

Version:

common utils for javascript. Utils to get the global scope (browser, webworker & co.). Customizable string escaper. Utilitize for objects. Extension at base javascript api (usefull extention like String.hashcode()).

57 lines (47 loc) 958 B
export default class ObjectProperty { constructor(key, context){ this.key = key; this.context = context; } get keyDefined(){ return this.key in this.context; } get hasValue(){ return !!this.context[this.key]; } get value(){ return this.context[this.key]; } set value(data){ this.context[this.key] = data; } set append(data) { if(!this.hasValue) this.value = data; else { const value = this.value; if(value instanceof Array) value.push(data); else this.value = [this.value, data]; } } remove(){ delete this.context[this.key]; } static load(data, key, create=true) { let context = data; const keys = key.split("\."); let name = keys.shift().trim(); while(keys.length > 0){ if(!context[name]){ if(!create) return null; context[name] = {} } context = context[name]; name = keys.shift().trim(); } return new ObjectProperty(name, context); } };