1 | var getOperationShapeNames = require('./get-operation-shape-names').getOperationShapeNames;
|
2 | var visitRelatedShapeNames = require('./visit-related-shape-names').visitRelatedShapeNames;
|
3 |
|
4 | function pruneShapes(model) {
|
5 |
|
6 |
|
7 | var operationShapeNames = getOperationShapeNames(model);
|
8 | var shapeMap = model.shapes;
|
9 |
|
10 | for (operationShape of operationShapeNames) {
|
11 |
|
12 | visitRelatedShapeNames(operationShape, shapeMap);
|
13 | }
|
14 |
|
15 |
|
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 |
|
25 | module.exports = {
|
26 | pruneShapes: pruneShapes
|
27 | }; |
\ | No newline at end of file |