@cargolift-cdi/util-rabbitmq 0.2.1 → 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 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,8 +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.constants.js';
6
+ export * from './rabbitmq-connection.manager.js';
7
+ export * from './rabbitmq-publisher.service.js';
5
8
  export * from './rabbitmq-publisher-dlq.service.js';
6
9
  export * from './integration-event.publisher.js';
7
- export * from './rabbitmq-connection.manager.js';
8
- export * from './rabbitmq.constants.js';
10
+ export * from './rabbitmq.module.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,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,8 +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.constants.js';
6
+ export * from './rabbitmq-connection.manager.js';
7
+ export * from './rabbitmq-publisher.service.js';
5
8
  export * from './rabbitmq-publisher-dlq.service.js';
6
9
  export * from './integration-event.publisher.js';
7
- export * from './rabbitmq-connection.manager.js';
8
- export * from './rabbitmq.constants.js';
10
+ export * from './rabbitmq.module.js';
9
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,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,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"}
@@ -37,7 +37,7 @@ let IntegrationEventPublisher = class IntegrationEventPublisher {
37
37
  const headers = {
38
38
  'x-correlation-id': envelope.correlation_id,
39
39
  'x-trace': envelope?.trace || ctx?.trace,
40
- 'x-source': JSON.stringify(envelope.source),
40
+ 'x-source': envelope.source,
41
41
  ...(opts.headers || {}),
42
42
  };
43
43
  return this.publisher.publish(exchange, routingKey, envelope, (opts.payload || opts.req?.body), {
@@ -1 +1 @@
1
- {"version":3,"file":"integration-event.publisher.js","sourceRoot":"","sources":["../src/integration-event.publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration-event.publisher.js","sourceRoot":"","sources":["../src/integration-event.publisher.ts"],"names":[],"mappings":"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"}
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cargolift-cdi/util-rabbitmq",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Funções utilitárias para trabalhar com RabbitMQ",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",