@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
31 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.overwriteCollectionKeyValues = void 0;
var tslib_1 = require("tslib");
var utils_1 = require("../../utils");
var overwriteCollectionKeyValues = function (collectionJson, dictionary) {
var _a;
if (!collectionJson || !(0, utils_1.isObject)(collectionJson) || ((_a = Object.keys(dictionary)) === null || _a === void 0 ? void 0 : _a.length) === 0)
return collectionJson;
if (Array.isArray(collectionJson)) {
return collectionJson.map(function (item) { return (0, exports.overwriteCollectionKeyValues)(item, dictionary); });
}
var targets = Object.keys(dictionary);
var mapped = Object.keys(collectionJson).reduce(function (r, key) {
var _a, _b;
if (Array.isArray(r[key])) {
return tslib_1.__assign(tslib_1.__assign({}, r), (_a = {}, _a[key] = r[key].map(function (arrObj) {
return (0, exports.overwriteCollectionKeyValues)(arrObj, dictionary);
}), _a));
}
if ((0, utils_1.isObject)(r[key])) {
return tslib_1.__assign(tslib_1.__assign({}, r), (_b = {}, _b[key] = (0, exports.overwriteCollectionKeyValues)(r[key], dictionary), _b));
}
if (!targets.includes(r[key]))
return r;
return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, r), collectionJson), { value: dictionary[r[key]] });
}, collectionJson);
return mapped;
};
exports.overwriteCollectionKeyValues = overwriteCollectionKeyValues;
//# sourceMappingURL=overwriteCollectionKeyValues.js.map