@palmetto/nestjs-pubsub 2.0.0 → 2.1.0
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 +5 -2
- package/dist/main.d.ts +1 -1
- package/dist/main.js +3 -2
- package/dist/pubsub-module.js +10 -8
- package/dist/pubsub-provider-module.js +4 -2
- package/dist/subscriber.d.ts +4 -2
- package/dist/subscriber.js +10 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -36,7 +36,10 @@ import {
|
|
|
36
36
|
Publisher,
|
|
37
37
|
} from "@palmetto/pubsub";
|
|
38
38
|
|
|
39
|
-
import {
|
|
39
|
+
import {
|
|
40
|
+
PubSubRabbitSubscriber,
|
|
41
|
+
PubSubBullMqSubscriber,
|
|
42
|
+
} from "@palmetto/nestjs-pubsub";
|
|
40
43
|
|
|
41
44
|
import { Injectable, Module } from "@nestjs/common";
|
|
42
45
|
|
|
@@ -72,7 +75,7 @@ const MyOtherModelConfig: BullMqQueueConfiguration = {
|
|
|
72
75
|
class MyModelHandler {
|
|
73
76
|
constructor(private readonly publisher: Publisher) {}
|
|
74
77
|
|
|
75
|
-
@
|
|
78
|
+
@PubSubRabbitSubscriber(MyModelConfig)
|
|
76
79
|
async handler(message: MyModel) {
|
|
77
80
|
// here, we're publishing a new message to bullmq based on the message we received
|
|
78
81
|
const newMessage: MyOtherModel = {
|
package/dist/main.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from "./pubsub-module.js";
|
|
2
2
|
export * from "./pubsub-bullmq-module.js";
|
|
3
3
|
export * from "./pubsub-rabbitmq-module.js";
|
|
4
|
-
export {
|
|
4
|
+
export { type HandlerMethod, PubSubBullMqSubscriber, PubSubRabbitSubscriber, } from "./subscriber.js";
|
package/dist/main.js
CHANGED
|
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.PubSubRabbitSubscriber = exports.PubSubBullMqSubscriber = void 0;
|
|
18
18
|
__exportStar(require("./pubsub-module.js"), exports);
|
|
19
19
|
__exportStar(require("./pubsub-bullmq-module.js"), exports);
|
|
20
20
|
__exportStar(require("./pubsub-rabbitmq-module.js"), exports);
|
|
21
21
|
var subscriber_js_1 = require("./subscriber.js");
|
|
22
|
-
Object.defineProperty(exports, "
|
|
22
|
+
Object.defineProperty(exports, "PubSubBullMqSubscriber", { enumerable: true, get: function () { return subscriber_js_1.PubSubBullMqSubscriber; } });
|
|
23
|
+
Object.defineProperty(exports, "PubSubRabbitSubscriber", { enumerable: true, get: function () { return subscriber_js_1.PubSubRabbitSubscriber; } });
|
package/dist/pubsub-module.js
CHANGED
|
@@ -58,17 +58,18 @@ let PubSubManager = PubSubManager_1 = class PubSubManager {
|
|
|
58
58
|
onApplicationBootstrap() {
|
|
59
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
60
|
if (this.bootstrapped) {
|
|
61
|
+
this.logger.warn("already bootstrapped");
|
|
61
62
|
return;
|
|
62
63
|
}
|
|
63
64
|
this.bootstrapped = true;
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
for (const provider of this.pubSubFactory.providers) {
|
|
66
|
+
if (isPublisherProvider(provider)) {
|
|
67
|
+
this.publisher.addProvider(provider);
|
|
68
|
+
this.logger.debug(`bootstrapping adding publisher provider for ${provider.transport}`);
|
|
69
|
+
}
|
|
70
|
+
if (isSubscriberProvider(provider)) {
|
|
71
|
+
this.logger.debug(`bootstrapping adding subscriber provider for ${provider.transport}`);
|
|
72
|
+
this.subscriber.addProvider(provider);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
const handlers = (yield this.discover.providerMethodsWithMetaAtKey(subscriber_1.EVENT_HANDLER)).concat(yield this.discover.controllerMethodsWithMetaAtKey(subscriber_1.EVENT_HANDLER));
|
|
@@ -77,6 +78,7 @@ let PubSubManager = PubSubManager_1 = class PubSubManager {
|
|
|
77
78
|
yield this.subscriber.subscribe(handler.meta, (msg, context) => method.handler.call(method.parentClass.instance, msg, context));
|
|
78
79
|
this.logger.log(`Added subscriber method ${method.parentClass.name}.${method.methodName} for ${handler.meta.transport}:${handler.meta.name}`);
|
|
79
80
|
}
|
|
81
|
+
this.logger.debug("bootstrapping completed");
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
84
|
};
|
|
@@ -5,19 +5,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
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;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var PubSubProviderFactory_1;
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
exports.PubSubProviderFactoryModule = exports.PubSubProviderFactory = void 0;
|
|
10
11
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
let PubSubProviderFactory = class PubSubProviderFactory {
|
|
12
|
+
let PubSubProviderFactory = PubSubProviderFactory_1 = class PubSubProviderFactory {
|
|
12
13
|
constructor() {
|
|
13
14
|
this.providers = [];
|
|
14
15
|
}
|
|
15
16
|
addProvider(provider) {
|
|
17
|
+
common_1.Logger.debug(`${PubSubProviderFactory_1.name} adding provider for ${provider.transport}`);
|
|
16
18
|
this.providers.push(provider);
|
|
17
19
|
}
|
|
18
20
|
};
|
|
19
21
|
exports.PubSubProviderFactory = PubSubProviderFactory;
|
|
20
|
-
exports.PubSubProviderFactory = PubSubProviderFactory = __decorate([
|
|
22
|
+
exports.PubSubProviderFactory = PubSubProviderFactory = PubSubProviderFactory_1 = __decorate([
|
|
21
23
|
(0, common_1.Injectable)()
|
|
22
24
|
], PubSubProviderFactory);
|
|
23
25
|
let PubSubProviderFactoryModule = class PubSubProviderFactoryModule {
|
package/dist/subscriber.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import { BullMqQueueConfiguration,
|
|
1
|
+
import { MessageContext, MessageResult, BullMqMessageContext, BullMqQueueConfiguration, RabbitMqMessageContext, RabbitQueueExchangeConfiguration } from "@palmetto/pubsub";
|
|
2
2
|
export declare const EVENT_HANDLER: unique symbol;
|
|
3
|
-
export
|
|
3
|
+
export type HandlerMethod<TMessageContext extends MessageContext> = (msg: never, context: TMessageContext) => Promise<MessageResult> | MessageResult;
|
|
4
|
+
export declare const PubSubRabbitSubscriber: (config: RabbitQueueExchangeConfiguration) => <T extends HandlerMethod<RabbitMqMessageContext>>(target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
|
5
|
+
export declare const PubSubBullMqSubscriber: (config: BullMqQueueConfiguration) => <T extends HandlerMethod<BullMqMessageContext>>(target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
|
package/dist/subscriber.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.PubSubBullMqSubscriber = exports.PubSubRabbitSubscriber = exports.EVENT_HANDLER = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-type-parameters */
|
|
4
5
|
const common_1 = require("@nestjs/common");
|
|
5
6
|
exports.EVENT_HANDLER = Symbol("EVENT_HANDLER");
|
|
6
|
-
const
|
|
7
|
-
|
|
7
|
+
const EventSubscriber = (config) => {
|
|
8
|
+
return function (target, propertyKey, descriptor) {
|
|
9
|
+
(0, common_1.SetMetadata)(exports.EVENT_HANDLER, Object.assign({}, config))(target, propertyKey, descriptor);
|
|
10
|
+
return descriptor;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.PubSubRabbitSubscriber = (EventSubscriber);
|
|
14
|
+
exports.PubSubBullMqSubscriber = (EventSubscriber);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@palmetto/nestjs-pubsub",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "./dist/main.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"lint": "yarn run -T eslint --fix ./src",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@nestjs/core": "^11.1.3",
|
|
25
25
|
"@nestjs/testing": "^11.1.5",
|
|
26
26
|
"@palmetto/nestjs-errors": "^2.2.1",
|
|
27
|
-
"@palmetto/pubsub": "^2.
|
|
27
|
+
"@palmetto/pubsub": "^2.1.1",
|
|
28
28
|
"@swc/core": "^1.13.3",
|
|
29
29
|
"@types/node": "^24.2.1",
|
|
30
30
|
"@vitest/coverage-v8": "^3.2.4",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
|
|
53
53
|
"@nestjs/core": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0",
|
|
54
54
|
"@palmetto/nestjs-errors": "^2.2.1",
|
|
55
|
-
"@palmetto/pubsub": "^2.
|
|
55
|
+
"@palmetto/pubsub": "^2.1.1",
|
|
56
56
|
"zod": "^4.1.13"
|
|
57
57
|
}
|
|
58
58
|
}
|