UNPKG

kas-api

Version:

Simple Library for calling the ALL-INKL KAS API

47 lines 1.62 kB
"use strict"; 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