@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
31 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.omitByPath = void 0;
var tslib_1 = require("tslib");
var dot_object_1 = tslib_1.__importDefault(require("dot-object"));
var isObject_1 = require("./isObject");
var omitByPath = function (objectOrArray, path) {
var _a;
if (!(0, isObject_1.isObject)(objectOrArray) && !Array.isArray(objectOrArray))
return objectOrArray;
var dot = new dot_object_1.default();
if (Array.isArray(objectOrArray)) {
var indexKey = (_a = path.match(/\d+/g)) === null || _a === void 0 ? void 0 : _a[0];
if (indexKey && objectOrArray[indexKey] && !path.includes('.')) {
objectOrArray.splice(Number(indexKey), 1);
return objectOrArray;
}
if (indexKey && objectOrArray[indexKey] && path.includes('.')) {
var item = objectOrArray[indexKey];
var subPath = path.substring(path.indexOf('.') + 1);
if (subPath) {
objectOrArray[indexKey] = (0, exports.omitByPath)(item, subPath);
}
return objectOrArray;
}
}
dot.delete(path, objectOrArray);
return objectOrArray;
};
exports.omitByPath = omitByPath;
//# sourceMappingURL=omitByPath.js.map