Skip to content

Commit e5fcef5

Browse files
committed
Merge branch 'Thermeon-master'
2 parents 720e3a8 + e262f5a commit e5fcef5

File tree

4 files changed

+18
-16
lines changed

4 files changed

+18
-16
lines changed

browser/swagger-client.js

Lines changed: 7 additions & 8 deletions
Large diffs are not rendered by default.

browser/swagger-client.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/resolver.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -626,15 +626,14 @@ Resolver.prototype.resolveAllOf = function(spec, obj, depth) {
626626
if(item && typeof item.allOf !== 'undefined') {
627627
var allOf = item.allOf;
628628
if(_.isArray(allOf)) {
629-
var output = {};
629+
var output = _.cloneDeep(item);
630+
delete output['allOf'];
631+
630632
output['x-composed'] = true;
631633
if (typeof item['x-resolved-from'] !== 'undefined') {
632634
output['x-resolved-from'] = item['x-resolved-from'];
633635
}
634-
output.properties = {};
635-
if ( item.example ){
636-
output.example = item.example;
637-
}
636+
638637
for(var i = 0; i < allOf.length; i++) {
639638
var component = allOf[i];
640639
var source = 'self';
@@ -644,7 +643,7 @@ Resolver.prototype.resolveAllOf = function(spec, obj, depth) {
644643

645644
for(var part in component) {
646645
if(!output.hasOwnProperty(part)) {
647-
output[part] = JSON.parse(JSON.stringify(component[part]));
646+
output[part] = _.cloneDeep(component[part]);
648647
if(part === 'properties') {
649648
for(name in output[part]) {
650649
output[part][name]['x-resolved-from'] = source;
@@ -655,7 +654,7 @@ Resolver.prototype.resolveAllOf = function(spec, obj, depth) {
655654
if(part === 'properties') {
656655
var properties = component[part];
657656
for(name in properties) {
658-
output.properties[name] = JSON.parse(JSON.stringify(properties[name]));
657+
output.properties[name] = _.cloneDeep(properties[name]);
659658
var resolvedFrom = properties[name]['x-resolved-from'];
660659
if (typeof resolvedFrom === 'undefined' || resolvedFrom === 'self') {
661660
resolvedFrom = source;

test/composition.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ describe('swagger resolver', function () {
6969
} ]
7070
},
7171
Monster: {
72+
description: 'useful information',
7273
allOf : [
7374
{
7475
$ref: '#/definitions/Ghoul'
@@ -84,6 +85,7 @@ describe('swagger resolver', function () {
8485
]
8586
},
8687
Ghoul: {
88+
description: 'a ghoul',
8789
required: [ 'fangs' ],
8890
properties: {
8991
fangs: {
@@ -113,6 +115,8 @@ describe('swagger resolver', function () {
113115
expect(properties.hasScales['x-resolved-from']).toBe('self');
114116
test.undefined(spec.definitions.Animal.properties.firstName);
115117
expect(spec.definitions.Human.example).toBe('this is example');
118+
expect(spec.definitions.Ghoul.description).toBe('a ghoul');
119+
expect(spec.definitions.Monster.description).toBe('useful information');
116120
done();
117121
});
118122
});

0 commit comments

Comments
 (0)