Skip to content

Type Alias: ExtensionNamespaceFromConfig<N, Schemas, Ext>

Makaio Framework


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.

N extends string

Extension name without the extension: prefix

Schemas extends SchemaRecord

Schema record type for bus subjects

Ext extends ExtensionNamespaceExtensions = ExtensionNamespaceExtensions

Extension type preserving specific metadata types

  • ExtensionNamespaceFromConfig
    • [`ExtensionNamespace< N, SubjectRecordFromSchemaRecord, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord>, Ext, Schemas

](/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>`

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;
};