@cargolift-cdi/util-rabbitmq 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -2
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/rabbitmq.module.d.ts +8 -0
- package/dist/rabbitmq.module.d.ts.map +1 -0
- package/dist/rabbitmq.module.js +25 -0
- package/dist/rabbitmq.module.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,23 +9,52 @@ Utilitários para publicação de mensagens RabbitMQ com confirmação (publishe
|
|
|
9
9
|
- `publishToDlqAndAck`: envia mensagem original (enriquecida) para DLQ e faz ack.
|
|
10
10
|
- `RabbitMQConnectionManager`: reutiliza conexão evitando overhead de conexão por mensagem.
|
|
11
11
|
|
|
12
|
-
## Exemplo Rápido
|
|
12
|
+
## Exemplo Rápido (NestJS)
|
|
13
13
|
|
|
14
|
+
### Módulo
|
|
15
|
+
```ts
|
|
16
|
+
import { Module } from '@nestjs/common';
|
|
17
|
+
import { MessagingModule } from '@cargolift-cdi/util-rabbitmq';
|
|
18
|
+
import { DemoService } from './demo.service';
|
|
19
|
+
|
|
20
|
+
@Module({
|
|
21
|
+
imports: [MessagingModule],
|
|
22
|
+
providers: [DemoService],
|
|
23
|
+
exports: [DemoService]
|
|
24
|
+
})
|
|
25
|
+
export class DemoModule {}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Uso em service/controller
|
|
14
29
|
```ts
|
|
15
30
|
@Injectable()
|
|
16
31
|
export class DemoService {
|
|
17
32
|
constructor(private readonly integration: IntegrationEventPublisher) {}
|
|
18
33
|
|
|
19
34
|
async send(data: any) {
|
|
20
|
-
await this.integration.publish({
|
|
35
|
+
const meta = await this.integration.publish({
|
|
21
36
|
routingKey: 'integration.erp.demo',
|
|
22
37
|
payload: data,
|
|
23
38
|
raw: { returnMeta: true }
|
|
24
39
|
});
|
|
40
|
+
return meta; // opcional
|
|
25
41
|
}
|
|
26
42
|
}
|
|
27
43
|
```
|
|
28
44
|
|
|
45
|
+
### Publicação em Controller
|
|
46
|
+
```ts
|
|
47
|
+
@Post('demo')
|
|
48
|
+
async demo(@Req() req: Request) {
|
|
49
|
+
await this.integration.publish({
|
|
50
|
+
routingKey: 'integration.erp.demo',
|
|
51
|
+
req,
|
|
52
|
+
envelope: { event: 'demo', action: 'CREATE' }
|
|
53
|
+
});
|
|
54
|
+
return { ok: true };
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
29
58
|
## Metadados de Publicação
|
|
30
59
|
`RabbitMQPublisherService.publish` aceita `returnMeta: true` em `opts` retornando:
|
|
31
60
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Public export surface for shared types.
|
|
3
3
|
* Keep exports stable to avoid breaking downstream projects.
|
|
4
4
|
*/
|
|
5
|
-
export * from './rabbitmq-publisher-dlq.service.js';
|
|
6
|
-
export * from './integration-event.publisher.js';
|
|
7
|
-
export * from './rabbitmq-connection.manager.js';
|
|
8
5
|
export * from './rabbitmq.constants.js';
|
|
6
|
+
export * from './rabbitmq-connection.manager.js';
|
|
9
7
|
export * from './rabbitmq-publisher.service.js';
|
|
8
|
+
export * from './rabbitmq-publisher-dlq.service.js';
|
|
9
|
+
export * from './integration-event.publisher.js';
|
|
10
|
+
export * from './rabbitmq.module.js';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Public export surface for shared types.
|
|
3
3
|
* Keep exports stable to avoid breaking downstream projects.
|
|
4
4
|
*/
|
|
5
|
-
export * from './rabbitmq-publisher-dlq.service.js';
|
|
6
|
-
export * from './integration-event.publisher.js';
|
|
7
|
-
export * from './rabbitmq-connection.manager.js';
|
|
8
5
|
export * from './rabbitmq.constants.js';
|
|
6
|
+
export * from './rabbitmq-connection.manager.js';
|
|
9
7
|
export * from './rabbitmq-publisher.service.js';
|
|
8
|
+
export * from './rabbitmq-publisher-dlq.service.js';
|
|
9
|
+
export * from './integration-event.publisher.js';
|
|
10
|
+
export * from './rabbitmq.module.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RabbitmqModule
|
|
3
|
+
* Fornece publishers de RabbitMQ (baixo e alto nível) prontos para injeção.
|
|
4
|
+
* Importar este módulo em qualquer módulo de aplicação que deseje publicar eventos.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RabbitmqModule {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=rabbitmq.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rabbitmq.module.d.ts","sourceRoot":"","sources":["../src/rabbitmq.module.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,qBAIa,cAAc;CAAG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Module } from '@nestjs/common';
|
|
8
|
+
import { RabbitMQPublisherService } from './rabbitmq-publisher.service.js';
|
|
9
|
+
import { IntegrationEventPublisher } from './integration-event.publisher.js';
|
|
10
|
+
import { LoggerContextService } from '@cargolift-cdi/common';
|
|
11
|
+
/**
|
|
12
|
+
* RabbitmqModule
|
|
13
|
+
* Fornece publishers de RabbitMQ (baixo e alto nível) prontos para injeção.
|
|
14
|
+
* Importar este módulo em qualquer módulo de aplicação que deseje publicar eventos.
|
|
15
|
+
*/
|
|
16
|
+
let RabbitmqModule = class RabbitmqModule {
|
|
17
|
+
};
|
|
18
|
+
RabbitmqModule = __decorate([
|
|
19
|
+
Module({
|
|
20
|
+
providers: [LoggerContextService, RabbitMQPublisherService, IntegrationEventPublisher],
|
|
21
|
+
exports: [IntegrationEventPublisher, RabbitMQPublisherService]
|
|
22
|
+
})
|
|
23
|
+
], RabbitmqModule);
|
|
24
|
+
export { RabbitmqModule };
|
|
25
|
+
//# sourceMappingURL=rabbitmq.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rabbitmq.module.js","sourceRoot":"","sources":["../src/rabbitmq.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;GAIG;AAKI,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAJ1B,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;QACtF,OAAO,EAAE,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;KAC/D,CAAC;GACW,cAAc,CAAG"}
|