kas-api
Version:
Simple Library for calling the ALL-INKL KAS API
47 lines • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.APIResultTransformer = void 0;
class APIResultTransformer {
static transform(orgObj) {
if (typeof orgObj !== "object") {
return orgObj;
}
const obj = this._flatKeyValueArr(orgObj);
if (Array.isArray(orgObj)) {
const newArr = [];
for (const value of Object.values(obj)) {
newArr.push(this.transform(value));
}
return newArr;
}
else {
if (Object.values(obj).length === 1) {
return this.transform(Object.values(obj)[0]);
}
const newObj = {};
for (const key of Object.keys(obj)) {
newObj[key] = this.transform(obj[key]);
}
return newObj;
}
}
static _flatKeyValueArr(orgObj) {
const keys = Object.keys(orgObj);
if (!Array.isArray(orgObj) && keys.length === 1 && keys.includes("item")) {
const obj = orgObj.item;
if (Array.isArray(obj) && obj.every((v) => {
const objKeys = Object.keys(v);
return objKeys.length === 2 && objKeys.includes("key") && objKeys.includes("value");
})) {
const newObj = {};
for (const v of obj) {
newObj[v.key] = v.value;
}
return newObj;
}
}
return orgObj;
}
}
exports.APIResultTransformer = APIResultTransformer;
//# sourceMappingURL=api-result-transformer.js.map