@synkro/nestjs 0.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/dist/decorators/index.d.ts +5 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +3 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/on-event.decorator.d.ts +7 -0
- package/dist/decorators/on-event.decorator.d.ts.map +1 -0
- package/dist/decorators/on-event.decorator.js +9 -0
- package/dist/decorators/on-event.decorator.js.map +1 -0
- package/dist/decorators/on-workflow-step.decorator.d.ts +6 -0
- package/dist/decorators/on-workflow-step.decorator.d.ts.map +1 -0
- package/dist/decorators/on-workflow-step.decorator.js +9 -0
- package/dist/decorators/on-workflow-step.decorator.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/synkro.constants.d.ts +4 -0
- package/dist/synkro.constants.d.ts.map +1 -0
- package/dist/synkro.constants.js +4 -0
- package/dist/synkro.constants.js.map +1 -0
- package/dist/synkro.explorer.d.ts +21 -0
- package/dist/synkro.explorer.d.ts.map +1 -0
- package/dist/synkro.explorer.js +72 -0
- package/dist/synkro.explorer.js.map +1 -0
- package/dist/synkro.interfaces.d.ts +13 -0
- package/dist/synkro.interfaces.d.ts.map +1 -0
- package/dist/synkro.interfaces.js +2 -0
- package/dist/synkro.interfaces.js.map +1 -0
- package/dist/synkro.module.d.ts +7 -0
- package/dist/synkro.module.d.ts.map +1 -0
- package/dist/synkro.module.js +52 -0
- package/dist/synkro.module.js.map +1 -0
- package/dist/synkro.service.d.ts +15 -0
- package/dist/synkro.service.d.ts.map +1 -0
- package/dist/synkro.service.js +68 -0
- package/dist/synkro.service.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { OnEvent } from "./on-event.decorator.js";
|
|
2
|
+
export type { OnEventMetadata } from "./on-event.decorator.js";
|
|
3
|
+
export { OnWorkflowStep } from "./on-workflow-step.decorator.js";
|
|
4
|
+
export type { OnWorkflowStepMetadata } from "./on-workflow-step.decorator.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RetryConfig } from "@synkro/core";
|
|
2
|
+
export interface OnEventMetadata {
|
|
3
|
+
eventType: string;
|
|
4
|
+
retry?: RetryConfig;
|
|
5
|
+
}
|
|
6
|
+
export declare function OnEvent(eventType: string, retry?: RetryConfig): MethodDecorator;
|
|
7
|
+
//# sourceMappingURL=on-event.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-event.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/on-event.decorator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,OAAO,CACrB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,WAAW,GAClB,eAAe,CAKjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SetMetadata } from "@nestjs/common";
|
|
2
|
+
import { ON_EVENT_METADATA } from "../synkro.constants.js";
|
|
3
|
+
export function OnEvent(eventType, retry) {
|
|
4
|
+
return SetMetadata(ON_EVENT_METADATA, {
|
|
5
|
+
eventType,
|
|
6
|
+
retry,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=on-event.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-event.decorator.js","sourceRoot":"","sources":["../../src/decorators/on-event.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,MAAM,UAAU,OAAO,CACrB,SAAiB,EACjB,KAAmB;IAEnB,OAAO,WAAW,CAAC,iBAAiB,EAAE;QACpC,SAAS;QACT,KAAK;KACoB,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-workflow-step.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/on-workflow-step.decorator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,eAAe,CAKjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SetMetadata } from "@nestjs/common";
|
|
2
|
+
import { ON_WORKFLOW_STEP_METADATA } from "../synkro.constants.js";
|
|
3
|
+
export function OnWorkflowStep(workflowName, stepType) {
|
|
4
|
+
return SetMetadata(ON_WORKFLOW_STEP_METADATA, {
|
|
5
|
+
workflowName,
|
|
6
|
+
stepType,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=on-workflow-step.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-workflow-step.decorator.js","sourceRoot":"","sources":["../../src/decorators/on-workflow-step.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAOnE,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,QAAgB;IAEhB,OAAO,WAAW,CAAC,yBAAyB,EAAE;QAC5C,YAAY;QACZ,QAAQ;KACwB,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SynkroModule } from "./synkro.module.js";
|
|
2
|
+
export { SynkroService } from "./synkro.service.js";
|
|
3
|
+
export { SynkroExplorer } from "./synkro.explorer.js";
|
|
4
|
+
export { OnEvent, OnWorkflowStep } from "./decorators/index.js";
|
|
5
|
+
export type { OnEventMetadata, OnWorkflowStepMetadata, } from "./decorators/index.js";
|
|
6
|
+
export type { SynkroModuleOptions, SynkroModuleAsyncOptions, } from "./synkro.interfaces.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.constants.d.ts","sourceRoot":"","sources":["../src/synkro.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,yBAAyB,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.constants.js","sourceRoot":"","sources":["../src/synkro.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DiscoveryService, MetadataScanner, Reflector } from "@nestjs/core";
|
|
2
|
+
import type { HandlerFunction, RetryConfig } from "@synkro/core";
|
|
3
|
+
export interface DiscoveredEventHandler {
|
|
4
|
+
eventType: string;
|
|
5
|
+
handler: HandlerFunction;
|
|
6
|
+
retry?: RetryConfig;
|
|
7
|
+
}
|
|
8
|
+
export interface DiscoveredWorkflowStepHandler {
|
|
9
|
+
workflowName: string;
|
|
10
|
+
stepType: string;
|
|
11
|
+
handler: HandlerFunction;
|
|
12
|
+
}
|
|
13
|
+
export declare class SynkroExplorer {
|
|
14
|
+
private readonly discovery;
|
|
15
|
+
private readonly metadataScanner;
|
|
16
|
+
private readonly reflector;
|
|
17
|
+
constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, reflector: Reflector);
|
|
18
|
+
exploreEventHandlers(): DiscoveredEventHandler[];
|
|
19
|
+
exploreWorkflowStepHandlers(): DiscoveredWorkflowStepHandler[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=synkro.explorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.explorer.d.ts","sourceRoot":"","sources":["../src/synkro.explorer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMjE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,qBACa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS;IAGvC,oBAAoB,IAAI,sBAAsB,EAAE;IA4BhD,2BAA2B,IAAI,6BAA6B,EAAE;CA2B/D"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Injectable } from "@nestjs/common";
|
|
11
|
+
import { DiscoveryService, MetadataScanner, Reflector } from "@nestjs/core";
|
|
12
|
+
import { ON_EVENT_METADATA, ON_WORKFLOW_STEP_METADATA } from "./synkro.constants.js";
|
|
13
|
+
let SynkroExplorer = class SynkroExplorer {
|
|
14
|
+
discovery;
|
|
15
|
+
metadataScanner;
|
|
16
|
+
reflector;
|
|
17
|
+
constructor(discovery, metadataScanner, reflector) {
|
|
18
|
+
this.discovery = discovery;
|
|
19
|
+
this.metadataScanner = metadataScanner;
|
|
20
|
+
this.reflector = reflector;
|
|
21
|
+
}
|
|
22
|
+
exploreEventHandlers() {
|
|
23
|
+
const handlers = [];
|
|
24
|
+
for (const wrapper of this.discovery.getProviders()) {
|
|
25
|
+
const { instance } = wrapper;
|
|
26
|
+
if (!instance || typeof instance !== "object")
|
|
27
|
+
continue;
|
|
28
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
29
|
+
const methodNames = this.metadataScanner.getAllMethodNames(prototype);
|
|
30
|
+
for (const methodName of methodNames) {
|
|
31
|
+
const metadata = this.reflector.get(ON_EVENT_METADATA, prototype[methodName]);
|
|
32
|
+
if (!metadata)
|
|
33
|
+
continue;
|
|
34
|
+
handlers.push({
|
|
35
|
+
eventType: metadata.eventType,
|
|
36
|
+
handler: instance[methodName].bind(instance),
|
|
37
|
+
retry: metadata.retry,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return handlers;
|
|
42
|
+
}
|
|
43
|
+
exploreWorkflowStepHandlers() {
|
|
44
|
+
const handlers = [];
|
|
45
|
+
for (const wrapper of this.discovery.getProviders()) {
|
|
46
|
+
const { instance } = wrapper;
|
|
47
|
+
if (!instance || typeof instance !== "object")
|
|
48
|
+
continue;
|
|
49
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
50
|
+
const methodNames = this.metadataScanner.getAllMethodNames(prototype);
|
|
51
|
+
for (const methodName of methodNames) {
|
|
52
|
+
const metadata = this.reflector.get(ON_WORKFLOW_STEP_METADATA, prototype[methodName]);
|
|
53
|
+
if (!metadata)
|
|
54
|
+
continue;
|
|
55
|
+
handlers.push({
|
|
56
|
+
workflowName: metadata.workflowName,
|
|
57
|
+
stepType: metadata.stepType,
|
|
58
|
+
handler: instance[methodName].bind(instance),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return handlers;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
SynkroExplorer = __decorate([
|
|
66
|
+
Injectable(),
|
|
67
|
+
__metadata("design:paramtypes", [DiscoveryService,
|
|
68
|
+
MetadataScanner,
|
|
69
|
+
Reflector])
|
|
70
|
+
], SynkroExplorer);
|
|
71
|
+
export { SynkroExplorer };
|
|
72
|
+
//# sourceMappingURL=synkro.explorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.explorer.js","sourceRoot":"","sources":["../src/synkro.explorer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAiB9E,IAAM,cAAc,GAApB,MAAM,cAAc;IAEN;IACA;IACA;IAHnB,YACmB,SAA2B,EAC3B,eAAgC,EAChC,SAAoB;QAFpB,cAAS,GAAT,SAAS,CAAkB;QAC3B,oBAAe,GAAf,eAAe,CAAiB;QAChC,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ,oBAAoB;QAClB,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAE9C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,SAAS;YAExD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEtE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,iBAAiB,EACjB,SAAS,CAAC,UAAU,CAAC,CACtB,CAAC;gBACF,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,OAAO,EAAG,QAAgC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACrE,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2BAA2B;QACzB,MAAM,QAAQ,GAAoC,EAAE,CAAC;QAErD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,SAAS;YAExD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEtE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,yBAAyB,EACzB,SAAS,CAAC,UAAU,CAAC,CACtB,CAAC;gBACF,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,QAAQ,CAAC,IAAI,CAAC;oBACZ,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAG,QAAgC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACtE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AA9DY,cAAc;IAD1B,UAAU,EAAE;qCAGmB,gBAAgB;QACV,eAAe;QACrB,SAAS;GAJ5B,cAAc,CA8D1B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SynkroWorkflow } from "@synkro/core";
|
|
2
|
+
export interface SynkroModuleOptions {
|
|
3
|
+
transport: "redis" | "in-memory";
|
|
4
|
+
redisUrl?: string;
|
|
5
|
+
debug?: boolean;
|
|
6
|
+
workflows?: SynkroWorkflow[];
|
|
7
|
+
}
|
|
8
|
+
export interface SynkroModuleAsyncOptions {
|
|
9
|
+
imports?: any[];
|
|
10
|
+
useFactory: (...args: any[]) => Promise<SynkroModuleOptions> | SynkroModuleOptions;
|
|
11
|
+
inject?: any[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=synkro.interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.interfaces.d.ts","sourceRoot":"","sources":["../src/synkro.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,UAAU,EAAE,CACV,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;IACxD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.interfaces.js","sourceRoot":"","sources":["../src/synkro.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DynamicModule } from "@nestjs/common";
|
|
2
|
+
import type { SynkroModuleAsyncOptions, SynkroModuleOptions } from "./synkro.interfaces.js";
|
|
3
|
+
export declare class SynkroModule {
|
|
4
|
+
static forRoot(options: SynkroModuleOptions): DynamicModule;
|
|
5
|
+
static forRootAsync(options: SynkroModuleAsyncOptions): DynamicModule;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=synkro.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.module.d.ts","sourceRoot":"","sources":["../src/synkro.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAMvD,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,qBACa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa;IAiB3D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;CAiBtE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
var SynkroModule_1;
|
|
8
|
+
import { Module } from "@nestjs/common";
|
|
9
|
+
import { DiscoveryModule } from "@nestjs/core";
|
|
10
|
+
import { SYNKRO_MODULE_OPTIONS } from "./synkro.constants.js";
|
|
11
|
+
import { SynkroExplorer } from "./synkro.explorer.js";
|
|
12
|
+
import { SynkroService } from "./synkro.service.js";
|
|
13
|
+
let SynkroModule = SynkroModule_1 = class SynkroModule {
|
|
14
|
+
static forRoot(options) {
|
|
15
|
+
return {
|
|
16
|
+
module: SynkroModule_1,
|
|
17
|
+
imports: [DiscoveryModule],
|
|
18
|
+
providers: [
|
|
19
|
+
{
|
|
20
|
+
provide: SYNKRO_MODULE_OPTIONS,
|
|
21
|
+
useValue: options,
|
|
22
|
+
},
|
|
23
|
+
SynkroExplorer,
|
|
24
|
+
SynkroService,
|
|
25
|
+
],
|
|
26
|
+
exports: [SynkroService],
|
|
27
|
+
global: true,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
static forRootAsync(options) {
|
|
31
|
+
return {
|
|
32
|
+
module: SynkroModule_1,
|
|
33
|
+
imports: [...(options.imports ?? []), DiscoveryModule],
|
|
34
|
+
providers: [
|
|
35
|
+
{
|
|
36
|
+
provide: SYNKRO_MODULE_OPTIONS,
|
|
37
|
+
useFactory: options.useFactory,
|
|
38
|
+
inject: options.inject ?? [],
|
|
39
|
+
},
|
|
40
|
+
SynkroExplorer,
|
|
41
|
+
SynkroService,
|
|
42
|
+
],
|
|
43
|
+
exports: [SynkroService],
|
|
44
|
+
global: true,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
SynkroModule = SynkroModule_1 = __decorate([
|
|
49
|
+
Module({})
|
|
50
|
+
], SynkroModule);
|
|
51
|
+
export { SynkroModule };
|
|
52
|
+
//# sourceMappingURL=synkro.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.module.js","sourceRoot":"","sources":["../src/synkro.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAO7C,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,OAA4B;QACzC,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,OAAO,EAAE,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,OAAO;iBAClB;gBACD,cAAc;gBACd,aAAa;aACd;YACD,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAiC;QACnD,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC;YACtD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;gBACD,cAAc;gBACd,aAAa;aACd;YACD,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF,CAAA;AAnCY,YAAY;IADxB,MAAM,CAAC,EAAE,CAAC;GACE,YAAY,CAmCxB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OnModuleDestroy, OnModuleInit } from "@nestjs/common";
|
|
2
|
+
import type { HandlerFunction, RetryConfig } from "@synkro/core";
|
|
3
|
+
import { SynkroExplorer } from "./synkro.explorer.js";
|
|
4
|
+
import type { SynkroModuleOptions } from "./synkro.interfaces.js";
|
|
5
|
+
export declare class SynkroService implements OnModuleInit, OnModuleDestroy {
|
|
6
|
+
private readonly options;
|
|
7
|
+
private readonly explorer;
|
|
8
|
+
private synkro;
|
|
9
|
+
constructor(options: SynkroModuleOptions, explorer: SynkroExplorer);
|
|
10
|
+
onModuleInit(): Promise<void>;
|
|
11
|
+
onModuleDestroy(): Promise<void>;
|
|
12
|
+
publish(event: string, payload?: unknown, requestId?: string): Promise<string>;
|
|
13
|
+
on(eventType: string, handler: HandlerFunction, retry?: RetryConfig): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=synkro.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.service.d.ts","sourceRoot":"","sources":["../src/synkro.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EACf,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAEZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,qBACa,aAAc,YAAW,YAAY,EAAE,eAAe;IAK/D,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,MAAM,CAAU;gBAIL,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,cAAc;IAGrC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,OAAO,CACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC;IAIlB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI;CAG3E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Inject, Injectable, } from "@nestjs/common";
|
|
14
|
+
import { Synkro } from "@synkro/core";
|
|
15
|
+
import { SYNKRO_MODULE_OPTIONS } from "./synkro.constants.js";
|
|
16
|
+
import { SynkroExplorer } from "./synkro.explorer.js";
|
|
17
|
+
let SynkroService = class SynkroService {
|
|
18
|
+
options;
|
|
19
|
+
explorer;
|
|
20
|
+
synkro;
|
|
21
|
+
constructor(options, explorer) {
|
|
22
|
+
this.options = options;
|
|
23
|
+
this.explorer = explorer;
|
|
24
|
+
}
|
|
25
|
+
async onModuleInit() {
|
|
26
|
+
const workflows = this.options.workflows
|
|
27
|
+
? structuredClone(this.options.workflows)
|
|
28
|
+
: [];
|
|
29
|
+
// Patch decorated handler functions into workflow step definitions
|
|
30
|
+
const stepHandlers = this.explorer.exploreWorkflowStepHandlers();
|
|
31
|
+
for (const workflow of workflows) {
|
|
32
|
+
for (const step of workflow.steps) {
|
|
33
|
+
const discovered = stepHandlers.find((h) => h.workflowName === workflow.name && h.stepType === step.type);
|
|
34
|
+
if (discovered) {
|
|
35
|
+
step.handler = discovered.handler;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const synkroOptions = {
|
|
40
|
+
transport: this.options.transport,
|
|
41
|
+
redisUrl: this.options.redisUrl,
|
|
42
|
+
debug: this.options.debug,
|
|
43
|
+
workflows,
|
|
44
|
+
};
|
|
45
|
+
this.synkro = await Synkro.start(synkroOptions);
|
|
46
|
+
// Register discovered event handlers
|
|
47
|
+
const eventHandlers = this.explorer.exploreEventHandlers();
|
|
48
|
+
for (const { eventType, handler, retry } of eventHandlers) {
|
|
49
|
+
this.synkro.on(eventType, handler, retry);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async onModuleDestroy() {
|
|
53
|
+
await this.synkro.stop();
|
|
54
|
+
}
|
|
55
|
+
async publish(event, payload, requestId) {
|
|
56
|
+
return this.synkro.publish(event, payload, requestId);
|
|
57
|
+
}
|
|
58
|
+
on(eventType, handler, retry) {
|
|
59
|
+
this.synkro.on(eventType, handler, retry);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
SynkroService = __decorate([
|
|
63
|
+
Injectable(),
|
|
64
|
+
__param(0, Inject(SYNKRO_MODULE_OPTIONS)),
|
|
65
|
+
__metadata("design:paramtypes", [Object, SynkroExplorer])
|
|
66
|
+
], SynkroService);
|
|
67
|
+
export { SynkroService };
|
|
68
|
+
//# sourceMappingURL=synkro.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synkro.service.js","sourceRoot":"","sources":["../src/synkro.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,MAAM,EACN,UAAU,GAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAOtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI/C,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKL;IACA;IALX,MAAM,CAAU;IAExB,YAEmB,OAA4B,EAC5B,QAAwB;QADxB,YAAO,GAAP,OAAO,CAAqB;QAC5B,aAAQ,GAAR,QAAQ,CAAgB;IACxC,CAAC;IAEJ,KAAK,CAAC,YAAY;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YACtC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;QAEP,mEAAmE;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,CAAC;QACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CACpE,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAkB;YACnC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,SAAS;SACV,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEhD,qCAAqC;QACrC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC3D,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,aAAa,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAa,EACb,OAAiB,EACjB,SAAkB;QAElB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,EAAE,CAAC,SAAiB,EAAE,OAAwB,EAAE,KAAmB;QACjE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AA1DY,aAAa;IADzB,UAAU,EAAE;IAKR,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;6CAEH,cAAc;GANhC,aAAa,CA0DzB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@synkro/nestjs",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "NestJS integration module for @synkro/core",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": ["dist"],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"type-check": "tsc --noEmit"
|
|
19
|
+
},
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@nestjs/common": "^10.0.0 || ^11.0.0",
|
|
22
|
+
"@nestjs/core": "^10.0.0 || ^11.0.0",
|
|
23
|
+
"@synkro/core": "^0.5.0",
|
|
24
|
+
"reflect-metadata": "^0.1.13 || ^0.2.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@nestjs/common": "^11.0.0",
|
|
28
|
+
"@nestjs/core": "^11.0.0",
|
|
29
|
+
"@synkro/core": "file:../core",
|
|
30
|
+
"reflect-metadata": "^0.2.0",
|
|
31
|
+
"rxjs": "^7.8.0",
|
|
32
|
+
"typescript": "^5.7.0"
|
|
33
|
+
},
|
|
34
|
+
"license": "ISC"
|
|
35
|
+
}
|