diff --git a/src/models/channel-parameters.ts b/src/models/channel-parameters.ts index 629c7c87a..1143bdf8a 100644 --- a/src/models/channel-parameters.ts +++ b/src/models/channel-parameters.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { ChannelParameterInterface } from './channel-parameter'; -export type ChannelParametersInterface = Collection \ No newline at end of file +export type ChannelParametersInterface = Collection; + +export class ChannelParameters extends Collection implements ChannelParametersInterface { + override get(id: string): ChannelParameterInterface | undefined { + return this.collections.find(parameter => parameter.id() === id); + } +} \ No newline at end of file diff --git a/src/models/channels.ts b/src/models/channels.ts index cafec9950..c10f5a6a1 100644 --- a/src/models/channels.ts +++ b/src/models/channels.ts @@ -1,7 +1,21 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { ChannelInterface } from './channel'; export interface ChannelsInterface extends Collection { filterBySend(): ChannelInterface[]; filterByReceive(): ChannelInterface[]; -} \ No newline at end of file +} + +export class Channels extends Collection 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); + } +} diff --git a/src/models/correlation-ids.ts b/src/models/correlation-ids.ts index 9134efe9e..8355ea58d 100644 --- a/src/models/correlation-ids.ts +++ b/src/models/correlation-ids.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { CorrelationIdInterface } from './correlation-id'; -export type CorrelationIdsInterface = Collection \ No newline at end of file +export type CorrelationIdsInterface = Collection + +export class CorrelationIds extends Collection implements CorrelationIdsInterface { + override get(id: string): CorrelationIdInterface | undefined { + return this.collections.find(correlationId => correlationId.meta('id' as any) === id); + } +} diff --git a/src/models/extensions.ts b/src/models/extensions.ts index 7a1184461..7f3247428 100644 --- a/src/models/extensions.ts +++ b/src/models/extensions.ts @@ -1,4 +1,11 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { ExtensionInterface } from './extension'; -export type ExtensionsInterface = Collection \ No newline at end of file +export type ExtensionsInterface = Collection + +export class Extensions extends Collection implements ExtensionsInterface { + override get(id: string): ExtensionInterface | undefined { + id = id.startsWith('x-') ? id : `x-${id}`; + return this.collections.find(ext => ext.id() === id); + } +} \ No newline at end of file diff --git a/src/models/message-examples.ts b/src/models/message-examples.ts index e0ff6110c..16dd35a03 100644 --- a/src/models/message-examples.ts +++ b/src/models/message-examples.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { MessageExampleInterface } from './message-example'; export type MessageExamplesInterface = Collection + +export class MessageExamples extends Collection implements MessageExamplesInterface { + override get(name: string): MessageExampleInterface | undefined { + return this.collections.find(example => example.name() === name); + } +} diff --git a/src/models/message-traits.ts b/src/models/message-traits.ts index 548b344d8..4dfcd6fa3 100644 --- a/src/models/message-traits.ts +++ b/src/models/message-traits.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { MessageTraitInterface } from './message-trait'; -export type MessageTraitsInterface = Collection \ No newline at end of file +export type MessageTraitsInterface = Collection + +export class MessageTraits extends Collection implements MessageTraitsInterface { + override get(id: string): MessageTraitInterface | undefined { + return this.collections.find(trait => trait.id() === id); + } +} \ No newline at end of file diff --git a/src/models/messages.ts b/src/models/messages.ts index eaf8cb178..32604b0b0 100644 --- a/src/models/messages.ts +++ b/src/models/messages.ts @@ -1,7 +1,21 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { MessageInterface } from './message'; export interface MessagesInterface extends Collection { filterBySend(): MessageInterface[]; filterByReceive(): MessageInterface[]; -} \ No newline at end of file +} + +export class Messages extends Collection 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); + } +} diff --git a/src/models/operation-traits.ts b/src/models/operation-traits.ts index 310dbbfc7..fc6e06ddf 100644 --- a/src/models/operation-traits.ts +++ b/src/models/operation-traits.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { OperationTraitInterface } from './operation-trait'; -export type OperationTraitsInterface = Collection \ No newline at end of file +export type OperationTraitsInterface = Collection + +export class OperationTraits extends Collection implements OperationTraitsInterface { + override get(id: string): OperationTraitInterface | undefined { + return this.collections.find(trait => trait.id() === id); + } +} diff --git a/src/models/operations.ts b/src/models/operations.ts index 798e323a3..5d2726f59 100644 --- a/src/models/operations.ts +++ b/src/models/operations.ts @@ -1,7 +1,22 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; + import type { OperationInterface } from './operation'; export interface OperationsInterface extends Collection { filterBySend(): OperationInterface[]; filterByReceive(): OperationInterface[]; } + +export class Operations extends Collection 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()); + } +} diff --git a/src/models/schemas.ts b/src/models/schemas.ts index f8d021ada..797b1a42c 100644 --- a/src/models/schemas.ts +++ b/src/models/schemas.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { SchemaInterface } from './schema'; export type SchemasInterface = Collection + +export class Schemas extends Collection implements SchemasInterface { + override get(id: string): SchemaInterface | undefined { + return this.collections.find(schema => schema.uid() === id); + } +} diff --git a/src/models/security-requirements.ts b/src/models/security-requirements.ts index c52070760..436abecc1 100644 --- a/src/models/security-requirements.ts +++ b/src/models/security-requirements.ts @@ -1,4 +1,10 @@ -import type { Collection} from './collection'; +import { Collection} from './collection'; import type { SecurityRequirementInterface } from './security-requirement'; -export type SecurityRequirementsInterface = Collection \ No newline at end of file +export type SecurityRequirementsInterface = Collection + +export class SecurityRequirements extends Collection implements SecurityRequirementsInterface { + override get(id: string): SecurityRequirementInterface | undefined { + return this.collections.find(securityRequirement => securityRequirement.meta('id' as any) === id); + } +} diff --git a/src/models/security-schemes.ts b/src/models/security-schemes.ts index 283216648..84e1b5860 100644 --- a/src/models/security-schemes.ts +++ b/src/models/security-schemes.ts @@ -1,4 +1,10 @@ -import type { Collection} from './collection'; +import { Collection} from './collection'; import type { SecuritySchemeInterface } from './security-scheme'; export type SecuritySchemesInterface = Collection + +export class SecuritySchemes extends Collection implements SecuritySchemesInterface { + override get(id: string): SecuritySchemeInterface | undefined { + return this.collections.find(securityScheme => securityScheme.id() === id); + } +} diff --git a/src/models/server-variables.ts b/src/models/server-variables.ts index ae4499749..5184045ca 100644 --- a/src/models/server-variables.ts +++ b/src/models/server-variables.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { ServerVariableInterface } from './server-variable'; -export type ServerVariablesInterface = Collection \ No newline at end of file +export type ServerVariablesInterface = Collection; + +export class ServerVariables extends Collection implements ServerVariablesInterface { + override get(id: string): ServerVariableInterface | undefined { + return this.collections.find(variable => variable.id() === id); + } +} diff --git a/src/models/servers.ts b/src/models/servers.ts index 8483ef759..6f91da73a 100644 --- a/src/models/servers.ts +++ b/src/models/servers.ts @@ -1,7 +1,21 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { ServerInterface } from './server'; export interface ServersInterface extends Collection { filterBySend(): ServerInterface[]; filterByReceive(): ServerInterface[]; } + +export class Servers extends Collection 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); + } +} \ No newline at end of file diff --git a/src/models/tags.ts b/src/models/tags.ts index 368812652..475cec00d 100644 --- a/src/models/tags.ts +++ b/src/models/tags.ts @@ -1,4 +1,10 @@ -import type { Collection } from './collection'; +import { Collection } from './collection'; import type { TagInterface } from './tag'; -export type TagsInterface = Collection \ No newline at end of file +export type TagsInterface = Collection + +export class Tags extends Collection implements TagsInterface { + override get(name: string): TagInterface | undefined { + return this.collections.find(tag => tag.name() === name); + } +} \ No newline at end of file diff --git a/src/models/v2/asyncapi.ts b/src/models/v2/asyncapi.ts index fc14f4689..1bb291025 100644 --- a/src/models/v2/asyncapi.ts +++ b/src/models/v2/asyncapi.ts @@ -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'; diff --git a/src/models/v2/bindings.ts b/src/models/v2/bindings.ts index e9b5f46e9..2a394e9a0 100644 --- a/src/models/v2/bindings.ts +++ b/src/models/v2/bindings.ts @@ -1,5 +1,5 @@ import { Collection } from '../collection'; -import { Extensions } from './extensions'; +import { Extensions } from '../extensions'; import { Extension } from './extension'; import { createModel } from '../utils'; diff --git a/src/models/v2/channel-parameters.ts b/src/models/v2/channel-parameters.ts deleted file mode 100644 index 71d7cf10e..000000000 --- a/src/models/v2/channel-parameters.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { ChannelParametersInterface } from '../channel-parameters'; -import type { ChannelParameterInterface } from '../channel-parameter'; - -export class ChannelParameters extends Collection implements ChannelParametersInterface { - override get(id: string): ChannelParameterInterface | undefined { - return this.collections.find(parameter => parameter.id() === id); - } -} diff --git a/src/models/v2/channel.ts b/src/models/v2/channel.ts index 60a6fc7dc..29b03522f 100644 --- a/src/models/v2/channel.ts +++ b/src/models/v2/channel.ts @@ -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'; diff --git a/src/models/v2/channels.ts b/src/models/v2/channels.ts deleted file mode 100644 index 2f285f51e..000000000 --- a/src/models/v2/channels.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Collection } from '../collection'; - -import type { ChannelsInterface } from '../channels'; -import type { ChannelInterface } from '../channel'; - -export class Channels extends Collection 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); - } -} diff --git a/src/models/v2/components.ts b/src/models/v2/components.ts index b6f16f425..8f2ace0af 100644 --- a/src/models/v2/components.ts +++ b/src/models/v2/components.ts @@ -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'; diff --git a/src/models/v2/correlation-ids.ts b/src/models/v2/correlation-ids.ts deleted file mode 100644 index d0a921171..000000000 --- a/src/models/v2/correlation-ids.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { CorrelationIdsInterface } from '../correlation-ids'; -import type { CorrelationIdInterface } from '../correlation-id'; - -export class CorrelationIds extends Collection implements CorrelationIdsInterface { - override get(id: string): CorrelationIdInterface | undefined { - return this.collections.find(correlationId => correlationId.meta('id' as any) === id); - } -} diff --git a/src/models/v2/extensions.ts b/src/models/v2/extensions.ts deleted file mode 100644 index e529b35d3..000000000 --- a/src/models/v2/extensions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Collection } from '../collection'; - -import type { ExtensionsInterface } from '../extensions'; -import type { ExtensionInterface } from '../extension'; - -export class Extensions extends Collection implements ExtensionsInterface { - override get(id: string): ExtensionInterface | undefined { - id = id.startsWith('x-') ? id : `x-${id}`; - return this.collections.find(ext => ext.id() === id); - } -} diff --git a/src/models/v2/index.ts b/src/models/v2/index.ts index 69b94f651..17b34f9b6 100644 --- a/src/models/v2/index.ts +++ b/src/models/v2/index.ts @@ -2,36 +2,36 @@ export { AsyncAPIDocument as AsyncAPIDocumentV2 } from './asyncapi'; export { Binding as BindingV2 } from './binding'; export { Bindings as BindingsV2 } from './bindings'; export { ChannelParameter as ChannelParameterV2 } from './channel-parameter'; -export { ChannelParameters as ChannelParametersV2 } from './channel-parameters'; +export { ChannelParameters as ChannelParametersV2 } from '../channel-parameters'; export { Channel as ChannelV2 } from './channel'; -export { Channels as ChannelsV2 } from './channels'; +export { Channels as ChannelsV2 } from '../channels'; export { Components as ComponentsV2 } from './components'; export { Contact as ContactV2 } from './contact'; export { CorrelationId as CorrelationIdV2 } from './correlation-id'; export { Extension as ExtensionV2 } from './extension'; -export { Extensions as ExtensionsV2 } from './extensions'; +export { Extensions as ExtensionsV2 } from '../extensions'; export { ExternalDocumentation as ExternalDocumentationV2 } from './external-docs'; export { Info as InfoV2 } from './info'; export { License as LicenseV2 } from './license'; export { MessageExample as MessageExampleV2 } from './message-example'; -export { MessageExamples as MessageExamplesV2 } from './message-examples'; +export { MessageExamples as MessageExamplesV2 } from '../message-examples'; export { MessageTrait as MessageTraitV2 } from './message-trait'; -export { MessageTraits as MessageTraitsV2 } from './message-traits'; +export { MessageTraits as MessageTraitsV2 } from '../message-traits'; export { Message as MessageV2 } from './message'; -export { Messages as MessagesV2 } from './messages'; +export { Messages as MessagesV2 } from '../messages'; export { OAuthFlow as OAuthFlowV2 } from './oauth-flow'; export { OAuthFlows as OAuthFlowsV2 } from './oauth-flows'; export { OperationTrait as OperationTraitV2 } from './operation-trait'; -export { OperationTraits as OperationTraitsV2 } from './operation-traits'; +export { OperationTraits as OperationTraitsV2 } from '../operation-traits'; export { Operation as OperationV2 } from './operation'; -export { Operations as OperationsV2 } from './operations'; +export { Operations as OperationsV2 } from '../operations'; export { Schema as SchemaV2 } from './schema'; -export { Schemas as SchemasV2 } from './schemas'; +export { Schemas as SchemasV2 } from '../schemas'; export { SecurityScheme as SecuritySchemeV2 } from './security-scheme'; -export { SecuritySchemes as SecuritySchemesV2 } from './security-schemes'; +export { SecuritySchemes as SecuritySchemesV2 } from '../security-schemes'; export { ServerVariable as ServerVariableV2 } from './server-variable'; -export { ServerVariables as ServerVariablesV2 } from './server-variables'; +export { ServerVariables as ServerVariablesV2 } from '../server-variables'; export { Server as ServerV2 } from './server'; -export { Servers as ServersV2 } from './servers'; +export { Servers as ServersV2 } from '../servers'; export { Tag as TagV2 } from './tag'; -export { Tags as TagsV2 } from './tags'; \ No newline at end of file +export { Tags as TagsV2 } from '../tags'; \ No newline at end of file diff --git a/src/models/v2/info.ts b/src/models/v2/info.ts index 5ca6dda00..5afae182b 100644 --- a/src/models/v2/info.ts +++ b/src/models/v2/info.ts @@ -2,7 +2,7 @@ import { BaseModel } from '../base'; import { Contact } from './contact'; import { ExternalDocumentation } from './external-docs'; import { License } from './license'; -import { Tags } from './tags'; +import { Tags } from '../tags'; import { Tag } from './tag'; import { hasDescription, description, extensions } from './mixins'; @@ -68,17 +68,20 @@ export class Info extends BaseModel implements InfoInterface { } hasExternalDocs(): boolean { - return Object.keys(this._meta.asyncapi.parsed.externalDocs || {}).length > 0; + const parsedAsyncAPI: v2.AsyncAPIObject = this._meta.asyncapi.parsed as v2.AsyncAPIObject; + return Object.keys(parsedAsyncAPI.externalDocs || {}).length > 0; } externalDocs(): ExternalDocumentationInterface | undefined { if (this.hasExternalDocs()) { - return this.createModel(ExternalDocumentation, this._meta.asyncapi.parsed.externalDocs as v2.ExternalDocumentationObject, { pointer: '/externalDocs' }); + const parsedAsyncAPI: v2.AsyncAPIObject = this._meta.asyncapi.parsed as v2.AsyncAPIObject; + return this.createModel(ExternalDocumentation, parsedAsyncAPI.externalDocs as v2.ExternalDocumentationObject, { pointer: '/externalDocs' }); } } tags(): TagsInterface { - const tags = this._meta.asyncapi.parsed.tags || []; + const parsedAsyncAPI: v2.AsyncAPIObject = this._meta.asyncapi.parsed as v2.AsyncAPIObject; + const tags = parsedAsyncAPI.tags || []; return new Tags(tags.map((tag: any, idx: number) => this.createModel(Tag, tag, { pointer: `/tags/${idx}` }))); } diff --git a/src/models/v2/message-examples.ts b/src/models/v2/message-examples.ts deleted file mode 100644 index fa07cfa2f..000000000 --- a/src/models/v2/message-examples.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { MessageExamplesInterface } from '../message-examples'; -import type { MessageExampleInterface } from '../message-example'; - -export class MessageExamples extends Collection implements MessageExamplesInterface { - override get(name: string): MessageExampleInterface | undefined { - return this.collections.find(example => example.name() === name); - } -} diff --git a/src/models/v2/message-trait.ts b/src/models/v2/message-trait.ts index 914757e79..2f1333acb 100644 --- a/src/models/v2/message-trait.ts +++ b/src/models/v2/message-trait.ts @@ -1,6 +1,6 @@ import { BaseModel } from '../base'; import { CorrelationId } from './correlation-id'; -import { MessageExamples } from './message-examples'; +import { MessageExamples } from '../message-examples'; import { MessageExample } from './message-example'; import { Schema } from './schema'; diff --git a/src/models/v2/message-traits.ts b/src/models/v2/message-traits.ts deleted file mode 100644 index 3d8dadddb..000000000 --- a/src/models/v2/message-traits.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { MessageTraitsInterface } from '../message-traits'; -import type { MessageTraitInterface } from '../message-trait'; - -export class MessageTraits extends Collection implements MessageTraitsInterface { - override get(id: string): MessageTraitInterface | undefined { - return this.collections.find(trait => trait.id() === id); - } -} diff --git a/src/models/v2/message.ts b/src/models/v2/message.ts index ad87eeba3..4c8583db1 100644 --- a/src/models/v2/message.ts +++ b/src/models/v2/message.ts @@ -1,9 +1,9 @@ -import { Channels } from './channels'; -import { Operations } from './operations'; +import { Channels } from '../channels'; +import { Operations } from '../operations'; import { Operation } from './operation'; -import { MessageTraits } from './message-traits'; +import { MessageTraits } from '../message-traits'; import { MessageTrait } from './message-trait'; -import { Servers } from './servers'; +import { Servers } from '../servers'; import { Schema } from './schema'; import { tilde } from '../../utils'; diff --git a/src/models/v2/messages.ts b/src/models/v2/messages.ts deleted file mode 100644 index 591c0d7ac..000000000 --- a/src/models/v2/messages.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Collection } from '../collection'; - -import type { MessagesInterface } from '../messages'; -import type { MessageInterface } from '../message'; - -export class Messages extends Collection 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); - } -} diff --git a/src/models/v2/mixins.ts b/src/models/v2/mixins.ts index 37ebc7927..d93f099cf 100644 --- a/src/models/v2/mixins.ts +++ b/src/models/v2/mixins.ts @@ -1,9 +1,9 @@ import { Bindings } from './bindings'; import { Binding } from './binding'; -import { Extensions } from './extensions'; +import { Extensions } from '../extensions'; import { Extension } from './extension'; import { ExternalDocumentation } from './external-docs'; -import { Tags } from './tags'; +import { Tags } from '../tags'; import { Tag } from './tag'; import { createModel } from '../utils'; diff --git a/src/models/v2/operation-trait.ts b/src/models/v2/operation-trait.ts index 98a4ca631..fe24cfb65 100644 --- a/src/models/v2/operation-trait.ts +++ b/src/models/v2/operation-trait.ts @@ -11,24 +11,20 @@ import type { OperationTraitInterface } from '../operation-trait'; import type { TagsInterface } from '../tags'; import type { v2 } from '../../spec-types'; -import { SecurityRequirements } from './security-requirements'; +import { SecurityRequirements } from '../security-requirements'; import { SecurityRequirement } from './security-requirement'; -export class OperationTrait extends BaseModel implements OperationTraitInterface { - id(): string { - return this.operationId() || this._meta.id; +export class OperationTrait extends BaseModel implements OperationTraitInterface { + id(): string | undefined { + return this._json.operationId; } action(): OperationAction { return this._meta.action; } - hasOperationId(): boolean { - return !!this._json.operationId; - } - - operationId(): string | undefined { - return this._json.operationId; + hasId(): boolean { + return this.id() !== undefined; } hasSummary(): boolean { diff --git a/src/models/v2/operation-traits.ts b/src/models/v2/operation-traits.ts deleted file mode 100644 index 32cae7902..000000000 --- a/src/models/v2/operation-traits.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { OperationTraitsInterface } from '../operation-traits'; -import type { OperationTraitInterface } from '../operation-trait'; - -export class OperationTraits extends Collection implements OperationTraitsInterface { - override get(id: string): OperationTraitInterface | undefined { - return this.collections.find(trait => trait.id() === id); - } -} diff --git a/src/models/v2/operation.ts b/src/models/v2/operation.ts index 84dcda87b..b0a0614e5 100644 --- a/src/models/v2/operation.ts +++ b/src/models/v2/operation.ts @@ -1,10 +1,10 @@ -import { Channels } from './channels'; +import { Channels } from '../channels'; import { Channel } from './channel'; -import { Messages } from './messages'; +import { Messages } from '../messages'; import { Message } from './message'; -import { OperationTraits } from './operation-traits'; +import { OperationTraits } from '../operation-traits'; import { OperationTrait } from './operation-trait'; -import { Servers } from './servers'; +import { Servers } from '../servers'; import { tilde } from '../../utils'; diff --git a/src/models/v2/operations.ts b/src/models/v2/operations.ts deleted file mode 100644 index f61b8c11c..000000000 --- a/src/models/v2/operations.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Collection } from '../collection'; - -import type { OperationsInterface } from '../operations'; -import type { OperationInterface } from '../operation'; - -export class Operations extends Collection 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()); - } -} diff --git a/src/models/v2/schema.ts b/src/models/v2/schema.ts index ee551ae63..a025f5619 100644 --- a/src/models/v2/schema.ts +++ b/src/models/v2/schema.ts @@ -16,7 +16,7 @@ export class Schema extends BaseModel implements SchemasInterface { - override get(id: string): SchemaInterface | undefined { - return this.collections.find(schema => schema.uid() === id); - } -} diff --git a/src/models/v2/security-requirements.ts b/src/models/v2/security-requirements.ts deleted file mode 100644 index 5fcf7dd30..000000000 --- a/src/models/v2/security-requirements.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { SecurityRequirementsInterface } from '../security-requirements'; -import type { SecurityRequirementInterface } from '../security-requirement'; - -export class SecurityRequirements extends Collection implements SecurityRequirementsInterface { - override get(id: string): SecurityRequirementInterface | undefined { - return this.collections.find(securityRequirement => securityRequirement.meta('id' as any) === id); - } -} diff --git a/src/models/v2/security-schemes.ts b/src/models/v2/security-schemes.ts deleted file mode 100644 index 93ca01e1b..000000000 --- a/src/models/v2/security-schemes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { SecuritySchemesInterface } from '../security-schemes'; -import type { SecuritySchemeInterface } from '../security-scheme'; - -export class SecuritySchemes extends Collection implements SecuritySchemesInterface { - override get(id: string): SecuritySchemeInterface | undefined { - return this.collections.find(securityScheme => securityScheme.id() === id); - } -} diff --git a/src/models/v2/server-variables.ts b/src/models/v2/server-variables.ts deleted file mode 100644 index 5faf082db..000000000 --- a/src/models/v2/server-variables.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { ServerVariablesInterface } from '../server-variables'; -import type { ServerVariableInterface } from '../server-variable'; - -export class ServerVariables extends Collection implements ServerVariablesInterface { - override get(id: string): ServerVariableInterface | undefined { - return this.collections.find(variable => variable.id() === id); - } -} diff --git a/src/models/v2/server.ts b/src/models/v2/server.ts index d063ee735..162527087 100644 --- a/src/models/v2/server.ts +++ b/src/models/v2/server.ts @@ -1,12 +1,12 @@ import { BaseModel } from '../base'; -import { Channels } from './channels'; +import { Channels } from '../channels'; import { Channel } from './channel'; -import { Messages } from './messages'; -import { Operations } from './operations'; +import { Messages } from '../messages'; +import { Operations } from '../operations'; import { SecurityScheme } from './security-scheme'; -import { ServerVariables } from './server-variables'; +import { ServerVariables } from '../server-variables'; import { ServerVariable } from './server-variable'; -import { SecurityRequirements } from './security-requirements'; +import { SecurityRequirements } from '../security-requirements'; import { SecurityRequirement } from './security-requirement'; import { bindings, hasDescription, description, extensions } from './mixins'; diff --git a/src/models/v2/servers.ts b/src/models/v2/servers.ts deleted file mode 100644 index 3c6ce0f4a..000000000 --- a/src/models/v2/servers.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Collection } from '../collection'; -import { ServerInterface } from '../server'; -import { ServersInterface } from '../servers'; - -export class Servers extends Collection 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); - } -} diff --git a/src/models/v2/tags.ts b/src/models/v2/tags.ts deleted file mode 100644 index 6048620ff..000000000 --- a/src/models/v2/tags.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Collection } from '../collection'; - -import type { TagsInterface } from '../tags'; -import type { TagInterface } from '../tag'; - -export class Tags extends Collection implements TagsInterface { - override get(name: string): TagInterface | undefined { - return this.collections.find(tag => tag.name() === name); - } -}