UNPKG

@apideck/portman

Version:

Port OpenAPI Spec to Postman Collection, with contract & variation tests included

33 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.orderCollectionFolders = void 0; var tslib_1 = require("tslib"); var postman_collection_1 = require("postman-collection"); var orderCollectionFolders = function (obj, orderOfFolders) { if (orderOfFolders === void 0) { orderOfFolders = []; } var collection = obj instanceof postman_collection_1.Collection ? obj : new postman_collection_1.Collection(obj); var folders = []; var nonFolderItems = []; collection.items.each(function (item) { if (postman_collection_1.ItemGroup.isItemGroup(item)) { folders.push(item); } else { nonFolderItems.push(item); } }); var folderMap = new Map(folders.map(function (folder, index) { return [folder.name, index]; })); var sortedFolders = orderOfFolders .map(function (name) { return folderMap.get(name); }) .filter(function (index) { return index !== undefined; }) .map(function (index) { return folders[index]; }); var remainingFolders = folders.filter(function (folder) { return !orderOfFolders.includes(folder.name); }); var orderedFolders = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(sortedFolders), false), tslib_1.__read(remainingFolders), false); collection.items.clear(); orderedFolders.forEach(function (folder) { return collection.items.add(folder); }); nonFolderItems.forEach(function (item) { return collection.items.add(item); }); var collectionObj = JSON.parse(JSON.stringify(collection)); return collectionObj; }; exports.orderCollectionFolders = orderCollectionFolders; //# sourceMappingURL=orderCollectionFolders.js.map