UNPKG

845 BJavaScriptView Raw
1var getOperationShapeNames = require('./get-operation-shape-names').getOperationShapeNames;
2var visitRelatedShapeNames = require('./visit-related-shape-names').visitRelatedShapeNames;
3
4function pruneShapes(model) {
5
6 // start by grabbing the input/output shapes on all operations
7 var operationShapeNames = getOperationShapeNames(model);
8 var shapeMap = model.shapes;
9
10 for (operationShape of operationShapeNames) {
11 // traverse the tree and store visited shapes
12 visitRelatedShapeNames(operationShape, shapeMap);
13 }
14
15 // iterate over the shapeMap and remove any shape that wasn't visited
16 var shapeNames = Object.keys(shapeMap);
17 for (var name of shapeNames) {
18 if (!shapeMap[name].visited) {
19 delete shapeMap[name];
20 }
21 }
22
23};
24
25module.exports = {
26 pruneShapes: pruneShapes
27};
\No newline at end of file