@proto-kit/processor • Docs
Documentation / @proto-kit/processor / Processor
Class: Processor<Modules>
Reusable module container facilitating registration, resolution configuration, decoration and validation of modules
Extends
ModuleContainer<Modules>
Type Parameters
• Modules extends ProcessorModulesRecord
The record of child module classes.
Constructors
new Processor()
new Processor<
Modules>(definition):Processor<Modules>
Parameters
• definition: Modules
Returns
Processor<Modules>
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:69
Properties
currentConfig
protectedcurrentConfig:undefined|CombinedModuleContainerConfig<Modules,NoConfig>
Store the config separately, so that we can apply additional checks when retrieving it via the getter
Inherited from
Defined in
packages/common/dist/config/ConfigurableModule.d.ts:17
definition
definition:
Modules
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:61
Accessors
config
Get Signature
get config():
CombinedModuleContainerConfig<Modules,ContainerConfig>
Returns
CombinedModuleContainerConfig<Modules, ContainerConfig>
Set Signature
set config(
config):void
Parameters
• config: CombinedModuleContainerConfig<Modules, ContainerConfig>
Returns
void
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:121
container
Get Signature
get
protectedcontainer():DependencyContainer
Returns
DependencyContainer
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:86
containerConfig
Get Signature
get containerConfig():
ContainerConfig
Returns the container’s own configuration.
Returns
ContainerConfig
Inherited from
ModuleContainer.containerConfig
Defined in
packages/common/dist/config/ModuleContainer.d.ts:73
dependencyContainer
Get Signature
get dependencyContainer():
DependencyContainer
Returns
DependencyContainer
Inherited from
ModuleContainer.dependencyContainer
Defined in
packages/common/dist/config/ModuleContainer.d.ts:167
events
Get Signature
get events():
EventEmitterProxy<Modules>
Returns
EventEmitterProxy<Modules>
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:105
moduleNames
Get Signature
get moduleNames():
string[]
Returns
string[]
list of module names
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:77
Methods
assertContainerInitialized()
assertContainerInitialized(
container):asserts container is DependencyContainer
Parameters
• container: undefined | DependencyContainer
Returns
asserts container is DependencyContainer
Inherited from
ModuleContainer.assertContainerInitialized
Defined in
packages/common/dist/config/ModuleContainer.d.ts:95
assertIsValidModuleName()
assertIsValidModuleName(
moduleName):asserts moduleName is StringKeyOf<Modules>
Assert that the iterated moduleName is of ModuleName type,
otherwise it may be just string e.g. when modules are iterated over
using e.g. a for loop.
Parameters
• moduleName: string
Returns
asserts moduleName is StringKeyOf<Modules>
Inherited from
ModuleContainer.assertIsValidModuleName
Defined in
packages/common/dist/config/ModuleContainer.d.ts:92
configure()
configure(
config):void
Provide additional configuration after the ModuleContainer was created.
Keep in mind that modules are only decorated once after they are resolved, therefore applying any configuration must happen before the first resolution.
Parameters
• config: CombinedModuleContainerConfig<Modules, NoConfig>
Returns
void
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:119
configurePartial()
configurePartial(
config):void
Parameters
• config: RecursivePartial<CombinedModuleContainerConfig<Modules, NoConfig>>
Returns
void
Inherited from
ModuleContainer.configurePartial
Defined in
packages/common/dist/config/ModuleContainer.d.ts:120
create()
create(
childContainerProvider):void
This is a placeholder for individual modules to override. This method will be called whenever the underlying container fully initialized
Parameters
• childContainerProvider: ChildContainerProvider
Returns
void
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:166
decorateModule()
protecteddecorateModule(moduleName,containedModule):void
Override this in the child class to provide custom features or module checks
Parameters
• moduleName: StringKeyOf<Modules>
• containedModule: InstanceType<Modules[StringKeyOf<Modules>]>
Returns
void
Inherited from
ModuleContainer.decorateModule
Defined in
packages/common/dist/config/ModuleContainer.d.ts:139
initializeDependencyFactories()
protectedinitializeDependencyFactories(factories):void
Inject a set of dependencies using the given list of DependencyFactories This method should be called during startup
Parameters
• factories: StringKeyOf<Modules>[]
Returns
void
Inherited from
ModuleContainer.initializeDependencyFactories
Defined in
packages/common/dist/config/ModuleContainer.d.ts:145
isValidModuleName()
isValidModuleName(
modules,moduleName):moduleName is StringKeyOf<Modules>
Parameters
• modules: Modules
• moduleName: string | number | symbol
Returns
moduleName is StringKeyOf<Modules>
Inherited from
ModuleContainer.isValidModuleName
Defined in
packages/common/dist/config/ModuleContainer.d.ts:93
onAfterModuleResolution()
protectedonAfterModuleResolution(moduleName):void
Handle module resolution, e.g. by decorating resolved modules
Parameters
• moduleName: StringKeyOf<Modules>
Returns
void
Inherited from
ModuleContainer.onAfterModuleResolution
Defined in
packages/common/dist/config/ModuleContainer.d.ts:160
registerAliases()
protectedregisterAliases(originalToken,clas):void
Parameters
• originalToken: string
• clas: TypedClass<any>
Returns
void
Inherited from
ModuleContainer.registerAliases
Defined in
packages/common/dist/config/ModuleContainer.d.ts:96
registerModules()
protectedregisterModules(modules):void
Register modules into the current container, and registers a respective resolution hook in order to decorate the module upon/after resolution.
Parameters
• modules: Modules
Returns
void
Inherited from
ModuleContainer.registerModules
Defined in
packages/common/dist/config/ModuleContainer.d.ts:104
registerValue()
registerValue<
Value>(modules):void
Register a non-module value into the current container
Type Parameters
• Value
Parameters
• modules: Record<string, Value>
Returns
void
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:110
resolve()
resolve<
KeyType>(moduleName):InstanceType<ResolvableModules<Modules>[KeyType]>
Resolves a module from the current module container
We have to narrow down the ModuleName type here to
ResolvableModuleName, otherwise the resolved value might
be any module instance, not the one specifically requested as argument.
Type Parameters
• KeyType extends string
Parameters
• moduleName: KeyType
Returns
InstanceType<ResolvableModules<Modules>[KeyType]>
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:133
resolveOrFail()
resolveOrFail<
ModuleType>(moduleName,moduleType?):ModuleType
Type Parameters
• ModuleType
Parameters
• moduleName: string
• moduleType?: TypedClass<ModuleType>
Returns
ModuleType
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:134
start()
start():
Promise<void>
Returns
Promise<void>
Defined in
packages/processor/src/Processor.ts:19
validateModule()
protectedvalidateModule(moduleName,containedModule):void
Check if the provided module satisfies the container requirements, such as only injecting other known modules.
Parameters
• moduleName: StringKeyOf<Modules>
• containedModule: ConfigurableModule<unknown>
Returns
void
Inherited from
ModuleContainer.validateModule
Defined in
packages/common/dist/config/ModuleContainer.d.ts:85
from()
staticfrom<Modules>(definition):Processor<Modules>
Type Parameters
• Modules extends ProcessorModulesRecord
Parameters
• definition: Modules
Returns
Processor<Modules>