2
0
mirror of https://github.com/cderche/greenlock-storage-s3 synced 2025-12-24 13:28:38 +00:00
2019-05-08 12:19:12 +01:00

27 lines
845 B
JavaScript

var getOperationShapeNames = require('./get-operation-shape-names').getOperationShapeNames;
var visitRelatedShapeNames = require('./visit-related-shape-names').visitRelatedShapeNames;
function pruneShapes(model) {
// start by grabbing the input/output shapes on all operations
var operationShapeNames = getOperationShapeNames(model);
var shapeMap = model.shapes;
for (operationShape of operationShapeNames) {
// traverse the tree and store visited shapes
visitRelatedShapeNames(operationShape, shapeMap);
}
// iterate over the shapeMap and remove any shape that wasn't visited
var shapeNames = Object.keys(shapeMap);
for (var name of shapeNames) {
if (!shapeMap[name].visited) {
delete shapeMap[name];
}
}
};
module.exports = {
pruneShapes: pruneShapes
};