chargebee-typescript
Version:
A library in typescript for integrating with Chargebee.
89 lines (88 loc) • 3.65 kB
JavaScript
"use strict";
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to set private field on non-instance");
}
privateMap.set(receiver, value);
return value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to get private field on non-instance");
}
return privateMap.get(receiver);
};
var __values, __sub_types, __dependant_types;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Model = void 0;
const resources = require("../resources");
const util_1 = require("../util");
class Model {
constructor(_values, _sub_types = {}, _dependant_types = {}) {
__values.set(this, void 0);
__sub_types.set(this, void 0);
__dependant_types.set(this, void 0);
__classPrivateFieldSet(this, __values, _values);
__classPrivateFieldSet(this, __sub_types, _sub_types);
__classPrivateFieldSet(this, __dependant_types, _dependant_types);
this.load(this.values);
}
get values() {
return __classPrivateFieldGet(this, __values);
}
get sub_types() {
return __classPrivateFieldGet(this, __sub_types);
}
get dependant_types() {
return __classPrivateFieldGet(this, __dependant_types);
}
load(values) {
for (const k in values) {
let v = values[k];
let set_val = v;
if (util_1.Util.isObject(v) && this.dependant_types[k]) {
continue;
}
else if (util_1.Util.isObject(v)) {
set_val = this.sub_types[k] ? new (resources)[this.sub_types[k]](v) : v;
}
else if (util_1.Util.isArray(v)) {
if (!util_1.Util.isEmptyObject(this.sub_types[k])) {
let set_vals = [];
for (let item of v) {
set_vals.push(new (resources)[this.sub_types[k]](item));
}
set_val = set_vals;
}
else {
set_val = v;
}
}
this[k] = set_val;
}
}
init_dependant(obj, type, sub_types = {}) {
if (!util_1.Util.isEmptyObject(obj) && util_1.Util.isObject(obj) && !util_1.Util.isEmptyObject(this.dependant_types[type])) {
this[type] = new (resources)[this.dependant_types[type]](obj[type], sub_types);
}
}
init_dependant_extended(obj, type, sub_types = {}) {
if (!util_1.Util.isEmptyObject(obj) && !util_1.Util.isEmptyObject(obj[type]) && util_1.Util.isObject(obj) && !util_1.Util.isEmptyObject(this.dependant_types[type])) {
this[type] = new (resources)[this.dependant_types[type]](obj[type], sub_types);
}
}
init_dependant_list(obj, type, sub_types = {}) {
if (!util_1.Util.isEmptyObject(obj) && !util_1.Util.isEmptyObject(obj[type]) && util_1.Util.isArray(obj[type]) && !util_1.Util.isEmptyObject(this.dependant_types[type])) {
let dependant_objs = [];
for (let dt of obj[type]) {
dependant_objs.push(new (resources)[this.dependant_types[type]](dt, sub_types));
}
this[type] = dependant_objs;
}
}
toString(...args) {
return JSON.stringify(this.values, null, 2);
}
}
exports.Model = Model;
__values = new WeakMap(), __sub_types = new WeakMap(), __dependant_types = new WeakMap();