Skip to content

Commit

Permalink
Move collections out of the v2 directory because they are always the …
Browse files Browse the repository at this point in the history
…same implementation
  • Loading branch information
fmvilas committed Oct 13, 2022
1 parent d1b9eed commit 0791adc
Show file tree
Hide file tree
Showing 43 changed files with 214 additions and 273 deletions.
10 changes: 8 additions & 2 deletions src/models/channel-parameters.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { ChannelParameterInterface } from './channel-parameter';

export type ChannelParametersInterface = Collection<ChannelParameterInterface>
export type ChannelParametersInterface = Collection<ChannelParameterInterface>;

export class ChannelParameters extends Collection<ChannelParameterInterface> implements ChannelParametersInterface {
override get(id: string): ChannelParameterInterface | undefined {
return this.collections.find(parameter => parameter.id() === id);
}
}
18 changes: 16 additions & 2 deletions src/models/channels.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { ChannelInterface } from './channel';

export interface ChannelsInterface extends Collection<ChannelInterface> {
filterBySend(): ChannelInterface[];
filterByReceive(): ChannelInterface[];
}
}

export class Channels extends Collection<ChannelInterface> implements ChannelsInterface {
override get(id: string): ChannelInterface | undefined {
return this.collections.find(channel => channel.id() === id);
}

filterBySend(): ChannelInterface[] {
return this.filterBy(channel => channel.operations().filterBySend().length > 0);
}

filterByReceive(): ChannelInterface[] {
return this.filterBy(channel => channel.operations().filterByReceive().length > 0);
}
}
10 changes: 8 additions & 2 deletions src/models/correlation-ids.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { CorrelationIdInterface } from './correlation-id';

export type CorrelationIdsInterface = Collection<CorrelationIdInterface>
export type CorrelationIdsInterface = Collection<CorrelationIdInterface>

export class CorrelationIds extends Collection<CorrelationIdInterface> implements CorrelationIdsInterface {
override get(id: string): CorrelationIdInterface | undefined {
return this.collections.find(correlationId => correlationId.meta('id' as any) === id);
}
}
11 changes: 9 additions & 2 deletions src/models/extensions.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { ExtensionInterface } from './extension';

export type ExtensionsInterface = Collection<ExtensionInterface>
export type ExtensionsInterface = Collection<ExtensionInterface>

export class Extensions extends Collection<ExtensionInterface> implements ExtensionsInterface {
override get<T = any>(id: string): ExtensionInterface<T> | undefined {
id = id.startsWith('x-') ? id : `x-${id}`;
return this.collections.find(ext => ext.id() === id);
}
}
8 changes: 7 additions & 1 deletion src/models/message-examples.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { MessageExampleInterface } from './message-example';

export type MessageExamplesInterface = Collection<MessageExampleInterface>

export class MessageExamples extends Collection<MessageExampleInterface> implements MessageExamplesInterface {
override get(name: string): MessageExampleInterface | undefined {
return this.collections.find(example => example.name() === name);
}
}
10 changes: 8 additions & 2 deletions src/models/message-traits.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { MessageTraitInterface } from './message-trait';

export type MessageTraitsInterface = Collection<MessageTraitInterface>
export type MessageTraitsInterface = Collection<MessageTraitInterface>

export class MessageTraits extends Collection<MessageTraitInterface> implements MessageTraitsInterface {
override get(id: string): MessageTraitInterface | undefined {
return this.collections.find(trait => trait.id() === id);
}
}
18 changes: 16 additions & 2 deletions src/models/messages.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { MessageInterface } from './message';

export interface MessagesInterface extends Collection<MessageInterface> {
filterBySend(): MessageInterface[];
filterByReceive(): MessageInterface[];
}
}

export class Messages extends Collection<MessageInterface> implements MessagesInterface {
override get(name: string): MessageInterface | undefined {
return this.collections.find(message => message.id() === name);
}

filterBySend(): MessageInterface[] {
return this.filterBy(message => message.operations().filterBySend().length > 0);
}

filterByReceive(): MessageInterface[] {
return this.filterBy(message => message.operations().filterByReceive().length > 0);
}
}
10 changes: 8 additions & 2 deletions src/models/operation-traits.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { OperationTraitInterface } from './operation-trait';

export type OperationTraitsInterface = Collection<OperationTraitInterface>
export type OperationTraitsInterface = Collection<OperationTraitInterface>

export class OperationTraits extends Collection<OperationTraitInterface> implements OperationTraitsInterface {
override get(id: string): OperationTraitInterface | undefined {
return this.collections.find(trait => trait.id() === id);
}
}
17 changes: 16 additions & 1 deletion src/models/operations.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
import type { Collection } from './collection';
import { Collection } from './collection';

import type { OperationInterface } from './operation';

export interface OperationsInterface extends Collection<OperationInterface> {
filterBySend(): OperationInterface[];
filterByReceive(): OperationInterface[];
}

export class Operations extends Collection<OperationInterface> implements OperationsInterface {
override get(id: string): OperationInterface | undefined {
return this.collections.find(operation => operation.id() === id);
}

filterBySend(): OperationInterface[] {
return this.filterBy(operation => operation.isSend());
}

filterByReceive(): OperationInterface[] {
return this.filterBy(operation => operation.isReceive());
}
}
8 changes: 7 additions & 1 deletion src/models/schemas.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { SchemaInterface } from './schema';

export type SchemasInterface = Collection<SchemaInterface>

export class Schemas extends Collection<SchemaInterface> implements SchemasInterface {
override get(id: string): SchemaInterface | undefined {
return this.collections.find(schema => schema.uid() === id);
}
}
10 changes: 8 additions & 2 deletions src/models/security-requirements.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection} from './collection';
import { Collection} from './collection';
import type { SecurityRequirementInterface } from './security-requirement';

export type SecurityRequirementsInterface = Collection<SecurityRequirementInterface>
export type SecurityRequirementsInterface = Collection<SecurityRequirementInterface>

export class SecurityRequirements extends Collection<SecurityRequirementInterface> implements SecurityRequirementsInterface {
override get(id: string): SecurityRequirementInterface | undefined {
return this.collections.find(securityRequirement => securityRequirement.meta('id' as any) === id);
}
}
8 changes: 7 additions & 1 deletion src/models/security-schemes.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection} from './collection';
import { Collection} from './collection';
import type { SecuritySchemeInterface } from './security-scheme';

export type SecuritySchemesInterface = Collection<SecuritySchemeInterface>

export class SecuritySchemes extends Collection<SecuritySchemeInterface> implements SecuritySchemesInterface {
override get(id: string): SecuritySchemeInterface | undefined {
return this.collections.find(securityScheme => securityScheme.id() === id);
}
}
10 changes: 8 additions & 2 deletions src/models/server-variables.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { ServerVariableInterface } from './server-variable';

export type ServerVariablesInterface = Collection<ServerVariableInterface>
export type ServerVariablesInterface = Collection<ServerVariableInterface>;

export class ServerVariables extends Collection<ServerVariableInterface> implements ServerVariablesInterface {
override get(id: string): ServerVariableInterface | undefined {
return this.collections.find(variable => variable.id() === id);
}
}
16 changes: 15 additions & 1 deletion src/models/servers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { ServerInterface } from './server';

export interface ServersInterface extends Collection<ServerInterface> {
filterBySend(): ServerInterface[];
filterByReceive(): ServerInterface[];
}

export class Servers extends Collection<ServerInterface> implements ServersInterface {
override get(id: string): ServerInterface | undefined {
return this.collections.find(server => server.id() === id);
}

filterBySend(): ServerInterface[] {
return this.filterBy(server => server.operations().filterBySend().length > 0);
}

filterByReceive(): ServerInterface[] {
return this.filterBy(server => server.operations().filterByReceive().length > 0);
}
}
10 changes: 8 additions & 2 deletions src/models/tags.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import type { Collection } from './collection';
import { Collection } from './collection';
import type { TagInterface } from './tag';

export type TagsInterface = Collection<TagInterface>
export type TagsInterface = Collection<TagInterface>

export class Tags extends Collection<TagInterface> implements TagsInterface {
override get(name: string): TagInterface | undefined {
return this.collections.find(tag => tag.name() === name);
}
}
12 changes: 6 additions & 6 deletions src/models/v2/asyncapi.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { BaseModel } from '../base';
import { Info } from './info';
import { Channels } from './channels';
import { Channels } from '../channels';
import { Channel } from './channel';
import { Components } from './components';
import { Messages } from './messages';
import { Operations } from './operations';
import { Servers } from './servers';
import { Messages } from '../messages';
import { Operations } from '../operations';
import { Servers } from '../servers';
import { Server } from './server';
import { SecuritySchemes } from './security-schemes';
import { SecuritySchemes } from '../security-schemes';
import { SecurityScheme } from './security-scheme';
import { Schemas } from './schemas';
import { Schemas } from '../schemas';

import { extensions } from './mixins';

Expand Down
2 changes: 1 addition & 1 deletion src/models/v2/bindings.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Collection } from '../collection';
import { Extensions } from './extensions';
import { Extensions } from '../extensions';
import { Extension } from './extension';

import { createModel } from '../utils';
Expand Down
10 changes: 0 additions & 10 deletions src/models/v2/channel-parameters.ts

This file was deleted.

8 changes: 4 additions & 4 deletions src/models/v2/channel.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { BaseModel } from '../base';
import { ChannelParameters } from './channel-parameters';
import { ChannelParameters } from '../channel-parameters';
import { ChannelParameter } from './channel-parameter';
import { Messages } from './messages';
import { Operations } from './operations';
import { Messages } from '../messages';
import { Operations } from '../operations';
import { Operation } from './operation';
import { Servers } from './servers';
import { Servers } from '../servers';
import { Server } from './server';

import { bindings, hasDescription, description, extensions } from './mixins';
Expand Down
18 changes: 0 additions & 18 deletions src/models/v2/channels.ts

This file was deleted.

22 changes: 11 additions & 11 deletions src/models/v2/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ import { SecurityScheme } from './security-scheme';
import { Server } from './server';
import { ServerVariable } from './server-variable';
import { extensions } from './mixins';
import { Servers } from './servers';
import { Channels } from './channels';
import { Messages } from './messages';
import { Schemas } from './schemas';
import { ChannelParameters } from './channel-parameters';
import { ServerVariables } from './server-variables';
import { OperationTraits } from './operation-traits';
import { MessageTraits } from './message-traits';
import { SecuritySchemes } from './security-schemes';
import { CorrelationIds } from './correlation-ids';
import { Operations } from './operations';
import { Servers } from '../servers';
import { Channels } from '../channels';
import { Messages } from '../messages';
import { Schemas } from '../schemas';
import { ChannelParameters } from '../channel-parameters';
import { ServerVariables } from '../server-variables';
import { OperationTraits } from '../operation-traits';
import { MessageTraits } from '../message-traits';
import { SecuritySchemes } from '../security-schemes';
import { CorrelationIds } from '../correlation-ids';
import { Operations } from '../operations';
import { Message } from './message';

import { tilde } from '../../utils';
Expand Down
10 changes: 0 additions & 10 deletions src/models/v2/correlation-ids.ts

This file was deleted.

11 changes: 0 additions & 11 deletions src/models/v2/extensions.ts

This file was deleted.

Loading

0 comments on commit 0791adc

Please sign in to comment.