@@ -19,10 +19,12 @@ function RamlExpander() {
19
19
if ( expandedType ) {
20
20
for ( var key in expandedType ) {
21
21
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 ] ;
24
27
}
25
- value [ key ] = expandedType [ key ] ;
26
28
}
27
29
}
28
30
}
@@ -39,10 +41,7 @@ function RamlExpander() {
39
41
}
40
42
41
43
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 ;
46
45
}
47
46
48
47
function isNotObject ( value ) {
@@ -53,14 +52,10 @@ function RamlExpander() {
53
52
jsTraverse . traverse ( raml ) . forEach ( function ( value ) {
54
53
if ( this . path . slice ( - 2 ) . join ( '.' ) === 'body.application/json' && value . type && value . type [ 0 ] === 'array' ) {
55
54
var type = extractArrayType ( value ) ;
56
- if ( isNotObject ( value . items ) ) {
57
- value . items = { } ;
58
- }
55
+ if ( isNotObject ( value . items ) ) { value . items = { } ; }
59
56
replaceTypeIfExists ( raml , type , value . items ) ;
60
57
61
- if ( ! value . examples && ! value . example ) {
62
- generateArrayExampleIfPossible ( value ) ;
63
- }
58
+ if ( ! value . examples && ! value . example ) { generateArrayExampleIfPossible ( value ) ; }
64
59
}
65
60
} ) ;
66
61
0 commit comments