Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 57 additions & 5 deletions packages/apidom-ns-asyncapi-2/src/refractor/registration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,25 @@ import Amqp1ChannelBindingElement from '../elements/bindings/amqp1/Amqp1ChannelB
import Amqp1MessageBindingElement from '../elements/bindings/amqp1/Amqp1MessageBinding';
import Amqp1OperationBindingElement from '../elements/bindings/amqp1/Amqp1OperationBinding';
import Amqp1ServerBindingElement from '../elements/bindings/amqp1/Amqp1ServerBinding';
// Anypoint MQ
import AnypointmqChannelBindingElement from '../elements/bindings/anypointmq/AnypointmqChannelBinding';
import AnypointmqMessageBindingElement from '../elements/bindings/anypointmq/AnypointmqMessageBinding';
import AnypointmqOperationBindingElement from '../elements/bindings/anypointmq/AnypointmqOperationBinding';
import AnypointmqServerBindingElement from '../elements/bindings/anypointmq/AnypointmqServerBinding';
// HTTP
import HttpChannelBindingElement from '../elements/bindings/http/HttpChannelBinding';
import HttpMessageBindingElement from '../elements/bindings/http/HttpMessageBinding';
import HttpOperationBindingElement from '../elements/bindings/http/HttpOperationBinding';
import HttpServerBindingElement from '../elements/bindings/http/HttpServerBinding';
// Google Cloud Pub/Sub
import GooglePubSubChannelBindingElement from '../elements/bindings/googlepubsub/GooglePubSubChannelBinding';
import GooglePubSubMessageBindingElement from '../elements/bindings/googlepubsub/GooglePubSubMessageBinding';
import GooglePubSubOperationBindingElement from '../elements/bindings/googlepubsub/GooglePubSubOperationBinding';
import GooglePubSubServerBindingElement from '../elements/bindings/googlepubsub/GooglePubSubServerBinding';
// IBM MQ
import IbmmqChannelBindingElement from '../elements/bindings/ibmmq/IbmmqChannelBinding';
import IbmmqMessageBindingElement from '../elements/bindings/ibmmq/IbmmqMessageBinding';
import IbmmqOperationBindingElement from '../elements/bindings/ibmmq/IbmmqOperationBinding';
import IbmmqServerBindingElement from '../elements/bindings/ibmmq/IbmmqServerBinding';
// JMS
import JmsChannelBindingElement from '../elements/bindings/jms/JmsChannelBinding';
Expand All @@ -68,11 +79,6 @@ import KafkaChannelBindingElement from '../elements/bindings/kafka/KafkaChannelB
import KafkaMessageBindingElement from '../elements/bindings/kafka/KafkaMessageBinding';
import KafkaOperationBindingElement from '../elements/bindings/kafka/KafkaOperationBinding';
import KafkaServerBindingElement from '../elements/bindings/kafka/KafkaServerBinding';
// Anypoint MQ
import AnypointmqChannelBindingElement from '../elements/bindings/anypointmq/AnypointmqChannelBinding';
import AnypointmqMessageBindingElement from '../elements/bindings/anypointmq/AnypointmqMessageBinding';
import AnypointmqOperationBindingElement from '../elements/bindings/anypointmq/AnypointmqOperationBinding';
import AnypointmqServerBindingElement from '../elements/bindings/anypointmq/AnypointmqServerBinding';
// Mercure
import MercureChannelBindingElement from '../elements/bindings/mercure/MercureChannelBinding';
import MercureMessageBindingElement from '../elements/bindings/mercure/MercureMessageBinding';
Expand Down Expand Up @@ -450,6 +456,43 @@ HttpServerBindingElement.refract = createRefractor([
'ServerBinding',
'$visitor',
]);
// Google Cloud Pub/Sub
GooglePubSubChannelBindingElement.refract = createRefractor([
'visitors',
'document',
'objects',
'bindings',
'googlepubsub',
'ChannelBinding',
'$visitor',
]);
GooglePubSubMessageBindingElement.refract = createRefractor([
'visitors',
'document',
'objects',
'bindings',
'googlepubsub',
'MessageBinding',
'$visitor',
]);
GooglePubSubOperationBindingElement.refract = createRefractor([
'visitors',
'document',
'objects',
'bindings',
'googlepubsub',
'OperationBinding',
'$visitor',
]);
GooglePubSubServerBindingElement.refract = createRefractor([
'visitors',
'document',
'objects',
'bindings',
'googlepubsub',
'ServerBinding',
'$visitor',
]);
// IBM MQ
IbmmqChannelBindingElement.refract = createRefractor([
'visitors',
Expand All @@ -469,6 +512,15 @@ IbmmqMessageBindingElement.refract = createRefractor([
'MessageBinding',
'$visitor',
]);
IbmmqOperationBindingElement.refract = createRefractor([
'visitors',
'document',
'objects',
'bindings',
'ibmmq',
'OperationBinding',
'$visitor',
]);
IbmmqServerBindingElement.refract = createRefractor([
'visitors',
'document',
Expand Down
441 changes: 309 additions & 132 deletions packages/apidom-ns-asyncapi-2/src/refractor/specification.ts

Large diffs are not rendered by default.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import stampit from 'stampit';
import { T as stubTrue } from 'ramda';
import { ObjectElement } from '@swagger-api/apidom-core';

import AlternatingVisitor from '../../../../generics/AlternatingVisitor';
import FallbackVisitor from '../../../../FallbackVisitor';
import { isReferenceLikeElement } from '../../../../../predicates';
import { isReferenceElement } from '../../../../../../predicates';

const HeadersVisitor = stampit(AlternatingVisitor, FallbackVisitor, {
props: {
alternator: [
{ predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] },
{ predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] },
],
},
methods: {
ObjectElement(objectElement: ObjectElement) {
// @ts-ignore
const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement);

if (isReferenceElement(this.element)) {
this.element.setMetaProperty('referenced-element', 'schema');
}

return result;
},
},
});

export default HeadersVisitor;
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import stampit from 'stampit';
import { always } from 'ramda';

import GooglePubSubChannelBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubChannelBinding';
import FallbackVisitor from '../../../../FallbackVisitor';
import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor';

const GooglePubSubChannelBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
props: {
specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'ChannelBinding']),
canSupportSpecificationExtensions: false,
},
init() {
this.element = new GooglePubSubChannelBindingElement();
},
});

export default GooglePubSubChannelBindingVisitor;
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import stampit from 'stampit';
import { always } from 'ramda';

import GooglePubSubMessageBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubMessageBinding';
import FallbackVisitor from '../../../../FallbackVisitor';
import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor';

const GooglePubSubMessageBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
props: {
specPath: always(['document', 'objects', 'bindings', 'googlepubusb', 'MessageBinding']),
canSupportSpecificationExtensions: false,
},
init() {
this.element = new GooglePubSubMessageBindingElement();
},
});

export default GooglePubSubMessageBindingVisitor;
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import stampit from 'stampit';
import { always } from 'ramda';

import GooglePubSubOperationBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubOperationBinding';
import FallbackVisitor from '../../../../FallbackVisitor';
import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor';

const GooglePubSubOperationBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
props: {
specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'OperationBinding']),
canSupportSpecificationExtensions: false,
},
init() {
this.element = new GooglePubSubOperationBindingElement();
},
});

export default GooglePubSubOperationBindingVisitor;
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import stampit from 'stampit';
import { always } from 'ramda';

import GooglePubSubServerBindingElement from '../../../../../../elements/bindings/googlepubsub/GooglePubSubServerBinding';
import FallbackVisitor from '../../../../FallbackVisitor';
import FixedFieldsVisitor from '../../../../generics/FixedFieldsVisitor';

const GooglePubSubServerBindingVisitor = stampit(FixedFieldsVisitor, FallbackVisitor, {
props: {
specPath: always(['document', 'objects', 'bindings', 'googlepubsub', 'ServerBinding']),
canSupportSpecificationExtensions: false,
},
init() {
this.element = new GooglePubSubServerBindingElement();
},
});

export default GooglePubSubServerBindingVisitor;

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import stampit from 'stampit';
import { T as stubTrue } from 'ramda';
import { ObjectElement } from '@swagger-api/apidom-core';

import AlternatingVisitor from '../../../../generics/AlternatingVisitor';
import FallbackVisitor from '../../../../FallbackVisitor';
import { isReferenceLikeElement } from '../../../../../predicates';
import { isReferenceElement } from '../../../../../../predicates';

const HeadersVisitor = stampit(AlternatingVisitor, FallbackVisitor, {
props: {
alternator: [
{ predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] },
{ predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] },
],
},
methods: {
ObjectElement(objectElement: ObjectElement) {
// @ts-ignore
const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement);

if (isReferenceElement(this.element)) {
this.element.setMetaProperty('referenced-element', 'schema');
}

return result;
},
},
});

export default HeadersVisitor;

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import stampit from 'stampit';
import { T as stubTrue } from 'ramda';
import { ObjectElement } from '@swagger-api/apidom-core';

import AlternatingVisitor from '../../../../generics/AlternatingVisitor';
import FallbackVisitor from '../../../../FallbackVisitor';
import { isReferenceLikeElement } from '../../../../../predicates';
import { isReferenceElement } from '../../../../../../predicates';

const QueryVisitor = stampit(AlternatingVisitor, FallbackVisitor, {
props: {
alternator: [
{ predicate: isReferenceLikeElement, specPath: ['document', 'objects', 'Reference'] },
{ predicate: stubTrue, specPath: ['document', 'objects', 'Schema'] },
],
},
methods: {
ObjectElement(objectElement: ObjectElement) {
// @ts-ignore
const result = AlternatingVisitor.compose.methods.enter.call(this, objectElement);

if (isReferenceElement(this.element)) {
this.element.setMetaProperty('referenced-element', 'schema');
}

return result;
},
},
});

export default QueryVisitor;

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading