Type Alias: ExtensionNamespaceFromConfig<N, Schemas, Ext>
Makaio Framework / bus-core / ExtensionNamespaceFromConfig
Type Alias: ExtensionNamespaceFromConfig<N, Schemas, Ext>
Section titled “Type Alias: ExtensionNamespaceFromConfig<N, Schemas, Ext>”ExtensionNamespaceFromConfig<
N,Schemas,Ext> =ExtensionNamespace<N,SubjectRecordFromSchemaRecord<Schemas>,FilterablePayloadIntersection<SubjectRecordFromSchemaRecord<Schemas>>,Ext,Schemas>
Defined in: ../../../packages/bus-core/src/extension-namespace-types.ts:88
Infer the extension namespace type from config.
Type Parameters
Section titled “Type Parameters”N extends string
Extension name without the extension: prefix
Schemas
Section titled “Schemas”Schemas extends SchemaRecord
Schema record type for bus subjects
Ext extends ExtensionNamespaceExtensions = ExtensionNamespaceExtensions
Extension type preserving specific metadata types
Type Composition
Section titled “Type Composition”ExtensionNamespaceFromConfig- [`ExtensionNamespace<
N,
SubjectRecordFromSchemaRecord
, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord >, Ext, Schemas
- [`ExtensionNamespace<
N,
SubjectRecordFromSchemaRecord
](/reference/api/bus-core/interfaces/extensionnamespace/) -N-SubjectRecordFromSchemaRecord-Schemas-{ [K in keyof SchemaRecord & string]: Simplify<InferSchemaPayload<SchemaRecord[K]>>; }-FilterablePayloadIntersection<SubjectRecordFromSchemaRecord> -SubjectRecordFromSchemaRecord-Schemas-{ [K in keyof SchemaRecord & string]: Simplify<InferSchemaPayload<SchemaRecord[K]>>; }-Simplify< AllPropertiesOfUnion<FilterablePayloadsUnion> -AllPropertiesOfUnion<FilterablePayloadsUnion> -FilterablePayloadsUnion-Subjects-FilterablePayload<Subjects[keyof Subjects]>-Subjects[keyof Subjects]-P extends RequestMessagePayload ? P[‘request’] : P-{ [K in KeysOfUnion]: ValueOfKey<T, K>; } -Ext-Schemas-BusNamespace<extension:${N}, Subjects, FilterPayload, Schemas>`
Resolved Shape
Section titled “Resolved Shape”type ExtensionNamespaceFromConfig = { domain: N; extensions: Ext; name: `extension:${N}`; subjects: BusSubjects<FlatSubjectDefinitions<`extension:${N}`, Schemas>, `extension:${N}`>; scopedBus: (context?: MakaioBusContext) => Promise<ScopedBus<`extension:${N}`, import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>, { [KeyType in keyof { [K in (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends unknown ? keyof (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) : never]: (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends { [P in K]: infer V; } ? V : never; }]: { [K in (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends unknown ? keyof (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) : never]: (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends { [P in K]: infer V; } ? V : never; }[KeyType]; }>>; __filterPayload?: { [KeyType in keyof { [K in (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends unknown ? keyof (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) : never]: (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends { [P in K]: infer V; } ? V : never; }]: { [K in (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends unknown ? keyof (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) : never]: (import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string] extends import("@makaio/core").RequestMessagePayload ? import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]['request'] : import("@makaio/core").SubjectRecordFromSchemaRecord<Schemas>[keyof Schemas & string]) extends { [P in K]: infer V; } ? V : never; }[KeyType]; } | undefined;};