@@ -19,10 +19,12 @@ function RamlExpander() {
1919 if ( expandedType ) {
2020 for ( var key in expandedType ) {
2121 if ( expandedType . hasOwnProperty ( key ) ) {
22- if ( ( key === 'example' || key === 'examples' ) && valueHasExamples ) {
23- continue ;
22+ if ( ( key === 'example' || key === 'examples' ) && valueHasExamples ) { continue ; }
23+ if ( key === 'properties' ) { // can have extra properties
24+ value [ key ] = Object . assign ( value . properties || { } , expandedType [ key ] ) ;
25+ } else {
26+ value [ key ] = expandedType [ key ] ;
2427 }
25- value [ key ] = expandedType [ key ] ;
2628 }
2729 }
2830 }
@@ -39,10 +41,7 @@ function RamlExpander() {
3941 }
4042
4143 function extractArrayType ( arrayNode ) {
42- if ( arrayNode . items . type ) {
43- return arrayNode . items . type [ 0 ] ;
44- }
45- return arrayNode . items ;
44+ return arrayNode . items && arrayNode . items . type ? arrayNode . items . type [ 0 ] : arrayNode . items ;
4645 }
4746
4847 function isNotObject ( value ) {
@@ -53,14 +52,10 @@ function RamlExpander() {
5352 jsTraverse . traverse ( raml ) . forEach ( function ( value ) {
5453 if ( this . path . slice ( - 2 ) . join ( '.' ) === 'body.application/json' && value . type && value . type [ 0 ] === 'array' ) {
5554 var type = extractArrayType ( value ) ;
56- if ( isNotObject ( value . items ) ) {
57- value . items = { } ;
58- }
55+ if ( isNotObject ( value . items ) ) { value . items = { } ; }
5956 replaceTypeIfExists ( raml , type , value . items ) ;
6057
61- if ( ! value . examples && ! value . example ) {
62- generateArrayExampleIfPossible ( value ) ;
63- }
58+ if ( ! value . examples && ! value . example ) { generateArrayExampleIfPossible ( value ) ; }
6459 }
6560 } ) ;
6661
0 commit comments