UNPKG

qcobjects

Version:

QCObjects is an Open-source framework that empowers full-stack developers to make micro-services and micro-frontends into an N-Tier architecture.

82 lines (81 loc) 2.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DDO = void 0; const Export_1 = require("./Export"); const InheritClass_1 = require("./InheritClass"); const Logger_1 = require("./Logger"); const ObjectName_1 = require("./ObjectName"); /** * Dynamic Data Objects Class * Usage: * Class('TestDDO',{ * data: {}, * _new_ (){ * this.ddo = New(DDO,{ * instance:this, * name:'data', * value:{}, * fget (value){ * logger.debug('returned value '+ value ); * } * }) * } * }); * */ class DDO extends InheritClass_1.InheritClass { constructor({ instance, name, fget, fset, value }) { super({ instance, name, fget, fset, value }); this._new_({ instance, name, fget, fset, value }); } _new_({ instance, name, fget, fset }) { const ddoInstance = this; var name = (typeof name === "undefined") ? ((0, ObjectName_1.ObjectName)(ddoInstance)) : (name); Object.defineProperty(instance, name, { set(val) { const _value = val; Logger_1.logger.debug("value changed " + name); let ret; if (typeof fset !== "undefined" && typeof fset === "function") { ret = fset(_value); } else { ret = _value; } instance["_" + name] = ret; }, get() { const _value = instance["_" + name]; Logger_1.logger.debug("returning value " + name); const is_ddo = (v) => { if (typeof v === "object" && Object.hasOwn(v, "value")) { return v.value; } return v; }; let ret; if (typeof fget !== "undefined" && typeof fget === "function") { ret = fget(is_ddo(_value)); } else { ret = is_ddo(_value); } return ret; } }); } } exports.DDO = DDO; (0, Export_1.Export)(DDO);