@proto-kit/module • Docs
Documentation / @proto-kit/module / Runtime
Class: Runtime<Modules>
Wrapper for an application specific runtime, which helps orchestrate runtime modules into an interoperable runtime.
Extends
ModuleContainer<Modules>
Type Parameters
• Modules extends RuntimeModulesRecord
Implements
Constructors
new Runtime()
new Runtime<
Modules>(definition):Runtime<Modules>
Creates a new Runtime from the provided config
Parameters
• definition: Modules
Returns
Runtime<Modules>
Overrides
Defined in
packages/module/src/runtime/Runtime.ts:262
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
Overrides
Defined in
packages/module/src/runtime/Runtime.ts:253
program?
optionalprogram:any
Defined in
packages/module/src/runtime/Runtime.ts:249
zkProgrammable
zkProgrammable:
ZkProgrammable<undefined,MethodPublicOutput>
Implementation of
RuntimeEnvironment.zkProgrammable
Defined in
packages/module/src/runtime/Runtime.ts:255
Accessors
areProofsEnabled
Get Signature
get areProofsEnabled():
undefined|AreProofsEnabled
Returns
undefined | AreProofsEnabled
Implementation of
RuntimeEnvironment.areProofsEnabled
Defined in
packages/module/src/runtime/Runtime.ts:275
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
The dependency injection container of this runtime
Overrides
ModuleContainer.dependencyContainer
Defined in
packages/module/src/runtime/Runtime.ts:294
events
Get Signature
get events():
EventEmitterProxy<Modules>
Returns
EventEmitterProxy<Modules>
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:105
methodIdResolver
Get Signature
get methodIdResolver():
MethodIdResolver
Returns
Implementation of
RuntimeEnvironment.methodIdResolver
Defined in
packages/module/src/runtime/Runtime.ts:287
moduleNames
Get Signature
get moduleNames():
string[]
Returns
string[]
list of module names
Inherited from
Defined in
packages/common/dist/config/ModuleContainer.d.ts:77
runtimeModuleNames
Get Signature
get runtimeModuleNames():
string[]
Returns
string[]
A list of names of all the registered module names
Defined in
packages/module/src/runtime/Runtime.ts:354
stateService
Get Signature
get stateService():
SimpleAsyncStateService
Returns
Implementation of
RuntimeEnvironment.stateService
Defined in
packages/module/src/runtime/Runtime.ts:283
stateServiceProvider
Get Signature
get stateServiceProvider():
StateServiceProvider
Returns
Implementation of
RuntimeEnvironment.stateServiceProvider
Defined in
packages/module/src/runtime/Runtime.ts:279
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
bucketRuntimeMethods()
bucketRuntimeMethods(
methods):string[][]
Parameters
• methods: string[]
Returns
string[][]
Defined in
packages/module/src/runtime/Runtime.ts:326
compile()
compile(
registry):Promise<Record<string,CompileArtifact>>
Parameters
• registry: CompileRegistry
Returns
Promise<Record<string, CompileArtifact>>
Implementation of
Defined in
packages/module/src/runtime/Runtime.ts:358
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
Overrides
Defined in
packages/module/src/runtime/Runtime.ts:269
decorateModule()
decorateModule(
moduleName,containedModule):void
Add a name and other respective properties required by RuntimeModules, that come from the current Runtime
Parameters
• moduleName: StringKeyOf<Modules>
Name of the runtime module to decorate
• containedModule: InstanceType<Modules[StringKeyOf<Modules>]>
Returns
void
Overrides
ModuleContainer.decorateModule
Defined in
packages/module/src/runtime/Runtime.ts:341
getMethodById()
getMethodById(
methodId):undefined| (…args) =>Promise<unknown>
Parameters
• methodId: bigint
The encoded name of the method to call. Encoding: “stringToField(module.name) << 128 + stringToField(method-name)“
Returns
undefined | (…args) => Promise<unknown>
Defined in
packages/module/src/runtime/Runtime.ts:302
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
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):TypedClass<Runtime<Modules>>
Type Parameters
• Modules extends RuntimeModulesRecord
Parameters
• definition: Modules
Returns
TypedClass<Runtime<Modules>>