Skip to content

Commit e9e0cd0

Browse files
committed
fix(ns-openapi-3-1): fix bugs in Schema Object refracting
Closes #337
1 parent 88cd7e1 commit e9e0cd0

File tree

4 files changed

+20
-18
lines changed

4 files changed

+20
-18
lines changed

apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/DependentRequiredVisitor.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
import stampit from 'stampit';
2-
import { ArrayElement } from 'apidom';
2+
import { ObjectElement, BREAK } from 'apidom';
33

44
import FallbackVisitor from '../../FallbackVisitor';
55
import { appendMetadata } from '../../../metadata';
66

77
const DependentRequiredVisitor = stampit(FallbackVisitor, {
88
methods: {
9-
ArrayElement(arrayElement: ArrayElement) {
10-
this.element = arrayElement.clone();
9+
ObjectElement(objectElement: ObjectElement) {
10+
this.element = objectElement.clone();
1111

1212
appendMetadata(['json-schema-dependentRequired'], this.element);
13+
14+
return BREAK;
1315
},
1416
},
1517
});

apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/ExamplesVisitor.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import stampit from 'stampit';
2-
import { ArrayElement } from 'apidom';
2+
import { ArrayElement, BREAK } from 'apidom';
33

44
import FallbackVisitor from '../../FallbackVisitor';
55
import { appendMetadata } from '../../../metadata';
@@ -10,6 +10,8 @@ const ExamplesVisitor = stampit(FallbackVisitor, {
1010
this.element = arrayElement.clone();
1111

1212
appendMetadata(['json-schema-examples'], this.element);
13+
14+
return BREAK;
1315
},
1416
},
1517
});

apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/RequiredVisitor.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import stampit from 'stampit';
2-
import { ArrayElement } from 'apidom';
2+
import { ArrayElement, BREAK } from 'apidom';
33

44
import FallbackVisitor from '../../FallbackVisitor';
55
import { appendMetadata } from '../../../metadata';
@@ -10,6 +10,8 @@ const RequiredVisitor = stampit(FallbackVisitor, {
1010
this.element = arrayElement.clone();
1111

1212
appendMetadata(['json-schema-required'], this.element);
13+
14+
return BREAK;
1315
},
1416
},
1517
});

apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/index.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
import stampit from 'stampit';
2-
import { ObjectElement, BREAK } from 'apidom';
2+
import { always } from 'ramda';
33

44
import SchemaElement from '../../../../elements/Schema';
55
import FallbackVisitor from '../../FallbackVisitor';
6-
import SpecificationVisitor from '../../SpecificationVisitor';
6+
import FixedFieldsVisitor from '../../generics/FixedFieldsVisitor';
77

8-
const SchemaVisitor = stampit(SpecificationVisitor, FallbackVisitor, {
9-
methods: {
10-
ObjectElement(objectElement: ObjectElement) {
11-
// @ts-ignore
12-
const schemaElement = new SchemaElement(objectElement.content);
13-
14-
this.copyMetaAndAttributes(objectElement, schemaElement);
15-
16-
this.element = schemaElement;
17-
return BREAK;
18-
},
8+
const SchemaVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
9+
props: {
10+
specPath: always(['document', 'objects', 'Schema']),
11+
canSupportSpecificationExtensions: true,
12+
},
13+
init() {
14+
this.element = new SchemaElement();
1915
},
2016
});
2117

0 commit comments

Comments
 (0)