Skip to content

Interface: ExtensionNamespace<N, Subjects, FilterPayload, Ext, Schemas>

Makaio Framework


Makaio Framework / bus-core / ExtensionNamespace

Interface: ExtensionNamespace<N, Subjects, FilterPayload, Ext, Schemas>

Section titled “Interface: ExtensionNamespace<N, Subjects, FilterPayload, Ext, Schemas>”

Defined in: ../../../packages/bus-core/src/extension-namespace-types.ts:41

Extension namespace combines bus namespace with extensible extension-specific properties.

Wraps BusNamespace with:

  • Automatic ‘extension:’ prefix for domain naming
  • Extension point for extension metadata via declaration merging
  • BusNamespace<`extension:${N}`, Subjects, FilterPayload, Schemas>

N extends string = string

Extension name (without ‘extension:’ prefix)

Subjects extends SubjectRecord = SubjectRecord

Subject record type from schemas

FilterPayload = unknown

Filter payload type for type-safe filtering

Ext extends ExtensionNamespaceExtensions = ExtensionNamespaceExtensions

Extension type preserving specific metadata types

Schemas extends SchemaRecord = SchemaRecord

Original schema record; drives narrow literal types on subjects.$meta

readonly optional __filterPayload?: FilterPayload

Defined in: ../../../packages/bus-core/src/types/namespace.ts:29

Phantom property for type extraction. Never accessed at runtime. Enables ExtractFilterPayload<T> to infer the FilterPayload type parameter without relying on complex nested generic inference.

BusNamespace.__filterPayload


readonly domain: N

Defined in: ../../../packages/bus-core/src/extension-namespace-types.ts:51

Extension name (without ‘extension:’ prefix).


readonly extensions: Ext

Defined in: ../../../packages/bus-core/src/extension-namespace-types.ts:57

Extension properties added via declaration merging.

ExtensionNamespaceExtensions


name: `extension:${N}`

Defined in: ../../../packages/bus-core/src/types/namespace.ts:19

BusNamespace.name


subjects: BusSubjects<FlatSubjectDefinitions<`extension:${N}`, Schemas>, `extension:${N}`>

Defined in: ../../../packages/bus-core/src/types/namespace.ts:20

BusNamespace.subjects

scopedBus(context?): Promise<ScopedBus<`extension:${N}`, Subjects, FilterPayload>>

Defined in: ../../../packages/bus-core/src/types/namespace.ts:22

MakaioBusContext

Promise<ScopedBus<`extension:${N}`, Subjects, FilterPayload>>

BusNamespace.scopedBus