0.2.2 • Published 4 days ago
@djeka07/nestjs-azure-service-bus v0.2.2
Introduction
NestJS Azure service bus based on @azure/service-bus package. See Examples folder for usage.
Installation
yarn add @djeka07/nestjs-azure-service-bus
Usage
Importing module with only one provider
import { AzureServiceBusModule } from '@djeka07/nestjs-azure-service-bus';
@Module({
imports: [
AzureServiceBusModule.forAsyncRoot({
useFactory: async () => {
return {
connectionString: '<your-connection-string>'
senders: [ // Senders to send messages. Optional if for example if only will recieve messages
{
name: '<queue/topic-name>',
identifier: 'The identifier of the sender' // Optional
}
],
receivers: [ // Recievers to recieve messages, Optional if only will send messages
{
name: '<queue/topic-name>',
subscription: '<subscription-name>' // Optional, required when using topics
}
],
};
},
}),
],
controllers: [],
providers: [],
})
export class AModule {}
Importing module with multiple providers
import { AzureServiceBusModule } from '@djeka07/nestjs-azure-service-bus';
@Module({
imports: [
AzureServiceBusModule.forAsyncRoot([
{
useFactory: async () => {
return {
name: '<provider name>', // When using multiple providers a name need to be set
connectionString: '<your-connection-string>'
senders: [ // Senders to send messages. Optional if for example if only will recieve messages
{
name: '<queue/topic-name>',
identifier: 'The identifier of the sender' // Optional
}
],
receivers: [ // Recievers to recieve messages, Optional if only will send messages
{
name: '<queue/topic-name>',
subscription: '<subscription-name>' // Optional, required when using topics
}
],
};
},
},
{
useFactory: async () => {
return {
name: '<provider name>', // When using multiple providers a name need to be set
connectionString: 'connection string'
senders: [ // Senders to send messages. Optional if for example if only will recieve messages
{
name: '<queue/topic-name>',
identifier: 'The identifier of the sender' // Optional
}
],
receivers: [ // Recievers to recieve messages, Optional if only will send messages
{
name: '<queue/topic-name>',
subscription: '<subscription-name>' // Optional, required when using topics
}
],
};
},
}
]),
],
controllers: [],
providers: [],
})
export class AModule {}
Emitting messages with one provider
import { Controller, Post } from '@nestjs/common';
import { AppService } from './app.service';
import { AzureServiceBusClient } from '@djeka07/nestjs-azure-service-bus';
@Controller()
export class AppController {
constructor(
public readonly azureServiceBusClient: AzureServiceBusClient,
public readonly appService: AppService,
) {}
@Post()
post(): void {
this.azureServiceBusClient.emit({
payload: { body: { test: 'test' } },
name: '<queue/topic name>',
});
}
}
Emitting messages with multiple providers
import { Controller, Post } from '@nestjs/common';
import { AppService } from './app.service';
import { AzureServiceBusClient } from '@djeka07/nestjs-azure-service-bus';
@Controller()
export class AppController {
constructor(
@Inject('<provider name>')
private readonly azureServiceBusClient: AzureServiceBusClient,
@Inject('provider name')
private readonly azureServiceBusSecondService: AzureServiceBusClient,
) {}
@Post()
post(): void {
this.azureServiceBusClient.emit({
payload: { body: { test: 'test' } },
name: '<queue/topic name>',
});
}
@Post('/second')
post(): void {
this.azureServiceBusSecondService.emit({
payload: { body: { test: 'second test' } },
name: '<queue/topic name>',
});
}
}
Reveive messages
import { Subscribe } from '@djeka07/nestjs-azure-service-bus';
import { Injectable } from '@nestjs/common';
@Injectable()
export class TestService {
@Subscribe({ name: '<queue-name>' })
onMessage(data) {
console.log('message one', data);
}
@Subscribe({ name: '<topic-name>', subscription: '<subscription-name>' })
onMessageTwo(data) {
console.log('message two', data);
}
}
Reveive messages with multiple providers
import { Subscribe } from '@djeka07/nestjs-azure-service-bus';
import { Injectable } from '@nestjs/common';
@Injectable()
export class TestService {
@Subscribe({ name: '<queue-name>', provider: '<provider-name>' })
onMessage(data) {
console.log('message one', data);
}
@Subscribe({
name: '<topic-name>',
subscription: '<subscription-name>',
provider: '<provider-name>',
})
onMessageTwo(data) {
console.log('message two', data);
}
}
Author
André Ekbom Github
License
Licensed under the MIT License - see the LICENSE file for details.
0.2.1
4 days ago
0.2.2
4 days ago
0.1.32
14 days ago
0.2.0
14 days ago
0.1.30
23 days ago
0.1.31
23 days ago
0.1.10
23 days ago
0.1.11
23 days ago
0.1.12
23 days ago
0.1.13
23 days ago
0.1.14
23 days ago
0.1.15
23 days ago
0.1.27
23 days ago
0.1.28
23 days ago
0.1.29
23 days ago
0.1.20
23 days ago
0.1.21
23 days ago
0.1.22
23 days ago
0.0.10
24 days ago
0.1.23
23 days ago
0.0.11
24 days ago
0.1.24
23 days ago
0.0.12
24 days ago
0.1.25
23 days ago
0.1.26
23 days ago
0.1.0
24 days ago
0.1.2
24 days ago
0.1.1
24 days ago
0.1.16
23 days ago
0.1.8
23 days ago
0.0.9
24 days ago
0.1.17
23 days ago
0.1.7
23 days ago
0.0.8
24 days ago
0.1.18
23 days ago
0.1.19
23 days ago
0.1.9
23 days ago
0.1.4
24 days ago
0.0.5
24 days ago
0.1.3
24 days ago
0.0.4
24 days ago
0.1.6
23 days ago
0.0.7
24 days ago
0.1.5
23 days ago
0.0.6
24 days ago
0.0.3
25 days ago
0.0.2
25 days ago
0.0.1
25 days ago