Skip to content

Commit 63dc250

Browse files
committed
feat: add reference related metadata to namespaces
1 parent 224e778 commit 63dc250

File tree

7 files changed

+511
-3
lines changed

7 files changed

+511
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
1+
import stampit from 'stampit';
2+
import { StringElement, BREAK } from 'apidom';
3+
14
import FallbackVisitor from '../../FallbackVisitor';
25

3-
const $RefVisitor = FallbackVisitor;
6+
const $RefVisitor = stampit(FallbackVisitor, {
7+
methods: {
8+
StringElement(stringElement: StringElement) {
9+
this.element = stringElement.clone();
10+
this.element.classes.push('reference-field');
11+
12+
return BREAK;
13+
},
14+
},
15+
});
416

517
export default $RefVisitor;

apidom/packages/apidom-ns-asyncapi-2-0/src/refractor/visitors/async-api-2-0/servers/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const ServersVisitor = stampit(PatternedFieldsVisitor, FallbackVisitor, {
1313
},
1414
init() {
1515
this.element = new ServersElement();
16+
this.element.classes.push('servers');
1617
},
1718
});
1819

apidom/packages/apidom-ns-asyncapi-2-0/test/refractor/__snapshots__/index.ts.snap

+231
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
1+
import stampit from 'stampit';
2+
import { StringElement, BREAK } from 'apidom';
3+
14
import FallbackVisitor from '../../FallbackVisitor';
25

3-
const $RefVisitor = FallbackVisitor;
6+
const $RefVisitor = stampit(FallbackVisitor, {
7+
methods: {
8+
StringElement(stringElement: StringElement) {
9+
this.element = stringElement.clone();
10+
this.element.classes.push('reference-field');
11+
12+
return BREAK;
13+
},
14+
},
15+
});
416

517
export default $RefVisitor;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
1+
import stampit from 'stampit';
2+
import { StringElement, BREAK } from 'apidom';
3+
14
import FallbackVisitor from '../../FallbackVisitor';
25

3-
const $refVisitor = FallbackVisitor;
6+
const $refVisitor = stampit(FallbackVisitor, {
7+
methods: {
8+
StringElement(stringElement: StringElement) {
9+
this.element = stringElement.clone();
10+
this.element.classes.push('reference-field');
11+
12+
return BREAK;
13+
},
14+
},
15+
});
416

517
export default $refVisitor;

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

+11
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,24 @@ const SchemaVisitor = stampit(FixedFieldsVisitor, ParentSchemaAwareVisitor, Fall
7979
this.element.setMetaProperty('inherited$id', inherited$id);
8080
};
8181

82+
const handle$ref = (objectElement: ObjectElement) => {
83+
// get current $ref keyword
84+
const $ref = objectElement.get('$ref')?.toValue();
85+
86+
// if it's a non empty strings
87+
if (isNonEmptyString($ref)) {
88+
this.element.classes.push('reference-element');
89+
}
90+
};
91+
8292
/**
8393
* Public Api.
8494
*/
8595
this.ObjectElement = function _ObjectElement(objectElement: ObjectElement) {
8696
this.element = new SchemaElement();
8797
handle$schema(objectElement);
8898
handle$id(objectElement);
99+
handle$ref(objectElement);
89100

90101
// for further processing consider this Schema Element as parent for all embedded Schema Elements
91102
this.parent = this.element;

apidom/packages/apidom-ns-openapi-3-1/test/refractor/__snapshots__/index.ts.snap

+229
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)