Creates a configuration in order to initialize a new BusInstance.
Methods
withHandler(classHandler)
Registers a class handler that receives a message and performs a unit of work. When Bus is initialized it will configure the transport to subscribe to the type of message handled by the handler and upon receipt will forward the message through to the handle() function.
Arguments
Argument
Description
Default
classHandler
A class responsible for handling messages that implements Handler
Registers a function handler that receives a message and performs a unit of work. When Bus is initialized it will configure the transport to subscribe to the type of message handled by the function handler and upon receipt will forward the message to the function.
Arguments
Argument
Description
Default
functionHandler
A functional handler mapping initialized using handlerFor
Registers a custom handler that receives messages from external systems, or messages that don't implement the Message interfacefrom @node-ts/bus-messages.
Arguments
Argument
Description
Default
messageHandler
A handler that receives the custom message
None
customResolver
A discriminator that determines if an incoming message should be mapped to this handler
Configures Bus to use a different serialization provider. The provider is responsible for transforming messages to/from a serialized representation, as well as ensuring all object properties are a strong type.
Configures Bus to use a different persistence provider than the default InMemoryPersistence provider. This is used to persist workflow data and is unused if not using workflows.
Sets the message handling concurrency beyond the default value of 1, which will increase the number of messages handled in parallel.concurrency
Arguments
Argument
Description
Default
concurrency
The number of messages that can be handled in parallel
None
Example
withContainer(containerAdapter)
Use a local dependency injection/IoC container to resolve handlers and workflows.
Configures Bus to use a different persistence provider than the default InMemoryPersistence provider. This is used to persist workflow data and is unused if not using workflows.
Arguments
Argument
Description
Default
containerAdapter
An adapter that allows Bus to resolve class instances from the underlying IoC container
import { Bus } from '@node-ts/bus-core'
import { TestWorkflow } from './test-workflow'
Bus.configure().withWorkflow(TestWorkflow)
import { Bus } from '@node-ts/bus-core'
import { SqsTransport, SqsTransportConfiguration } from '@node-ts/bus-sqs'
const sqsConfiguration: SqsTransportConfiguration = {
// ...
}
const sqsTransport = new SqsTransport(sqsConfiguration)
Bus.configure().withTransport(sqsTransport)
import { Bus } from '@node-ts/bus-core'
import { CustomLogger } from './custom-logger'
Bus.configure().withLogger((target: string) => new CustomLogger(target))
import { Bus } from '@node-ts/bus-core'
import { ClassSerializer } from '@node-ts/bus-class-serializer'
Bus.configure().withSerializer(new ClassSerializer())
import { Bus } from '@node-ts/bus-core'
import { PostgresPersistence, PostgresConfiguration } from '@node-ts/bus-postgres'
const postgresConfiguration: PostgresConfiguration = {
connection: {
connectionString: 'postgres://postgres:password@localhost:5432/postgres'
},
schemaName: 'workflows'
}
const postgresPersistence = new PostgresPersistence(postgresConfiguration)
Bus.configure().withPersistence(postgresPersistence)
import { Bus } from '@node-ts/bus-core'
Bus.configure().withConcurrency(5)
withContainer({
get <T>(type: ClassConstructor<T>) {
return container.get<T>(type)
}
})
import { Bus } from '@node-ts/bus-core'
import { Container } from 'inversify'
const container = new Container()
Bus.configure().withContainer({
get <T>(type: ClassConstructor<T>) {
return container.get<T>(type)
}
})