@artstesh/postboy 1.1.3 → 1.1.5

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
@@ -1,27 +1,81 @@
1
- # ArtsteshPostboy
2
-
3
- This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.18.
4
-
5
- ## Development server
6
-
7
- Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
8
-
9
- ## Code scaffolding
10
-
11
- Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
12
-
13
- ## Build
14
-
15
- Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
16
-
17
- ## Running unit tests
18
-
19
- Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
20
-
21
- ## Running end-to-end tests
22
-
23
- Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
24
-
25
- ## Further help
26
-
27
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ The `@artstesh/postboy` library is designed to simplify the development of TypeScript applications using an event-driven approach. It provides convenient tools for working with the `rxjs` library, managing events, and handling dependencies, allowing developers to focus on business logic rather than boilerplate.
2
+
3
+ ## Purpose of the Library
4
+
5
+ In complex applications a developer always faces with a huge amount of services, subscriptions and, as a result, with a long list of dependencies in components of the system. Some services have to combine their own logic with providing of subscriptions, other exist only to define a list of observations to link components of the system. It is getting harder to support so many dependencies, testing becomes a nightmare add... to say the truth, it looks bad) Plus, it is neccessary to close all the subs properly to avoid memory leaks...
6
+
7
+ `@artstesh/postboy` is a tool aimed at reducing this complexity by removing repetitive tasks from development. It focuses on minimizing boilerplate code and eliminating issues such as subscription leaks and improper dependency handling.
8
+
9
+ ## Key Features
10
+
11
+ 1. **Event-Driven Architecture**
12
+ Enables creating event-based applications with minimal overhead and explicit subscription management. This is especially useful for large-scale applications where data delivery and reaction to events play a critical role.
13
+
14
+ 2. **Integration with `rxjs`**
15
+ Reactive programming is supported out of the box. This enables easy use of `rxjs` to process events.
16
+
17
+ 3. **Dependency Management**
18
+ The library simplifies dependency handling by providing an efficient mechanism for managing them.
19
+
20
+ 4. **Seamless Integration**
21
+ `@artstesh/postboy` can be easily integrated into existing TypeScript projects and helps structure applications into independent components with clear responsibilities for events and reactions.
22
+
23
+ 5. **Modularity and Scalability**
24
+ Thanks to its approach, the library is suitable for both small applications and large-scale projects with complex functionality.
25
+
26
+ ## Usage Example
27
+
28
+ Let’s take a look at a simple example to demonstrate how `@artstesh/postboy` can be used to handle events.
29
+
30
+ ### The case
31
+
32
+ Suppose we such a simple structure in an Angular application:
33
+
34
+ <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQogIDwhLS0gRmlyc3QgTGV2ZWwgQ29tcG9uZW50IC0tPg0KICA8cmVjdCB4PSIyMzAiIHk9IjIwIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjUwIiBmaWxsPSIjYzhlNmM5IiBzdHJva2U9IiMyZTdkMzIiIHN0cm9rZS13aWR0aD0iMiIgcng9IjYiPjwvcmVjdD4NCiAgPHRleHQgeD0iMzAwIiB5PSI1MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzJlN2QzMiI+QXBwQ29tcG9uZW50PC90ZXh0Pg0KDQogIDwhLS0gU2Vjb25kIExldmVsIENvbXBvbmVudHMgLS0+DQogIDxyZWN0IHg9IjEzMCIgeT0iMTIwIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjUwIiBmaWxsPSIjZmZlY2IzIiBzdHJva2U9IiNmNTdjMDAiIHN0cm9rZS13aWR0aD0iMiIgcng9IjYiPjwvcmVjdD4NCiAgPHRleHQgeD0iMjAwIiB5PSIxNTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNmNTdjMDAiPlBhcmVudCBBPC90ZXh0Pg0KDQogIDxyZWN0IHg9IjMzMCIgeT0iMTIwIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjUwIiBmaWxsPSIjZmZlY2IzIiBzdHJva2U9IiNmNTdjMDAiIHN0cm9rZS13aWR0aD0iMiIgcng9IjYiPjwvcmVjdD4NCiAgPHRleHQgeD0iNDAwIiB5PSIxNTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNmNTdjMDAiPlBhcmVudCBCPC90ZXh0Pg0KDQogIDwhLS0gVGhpcmQgTGV2ZWwgQ29tcG9uZW50cyAtLT4NCiAgPHJlY3QgeD0iNzAiIHk9IjI0MCIgd2lkdGg9IjE0MCIgaGVpZ2h0PSI1MCIgZmlsbD0iI2UzZjJmZCIgc3Ryb2tlPSIjMDA3YWNjIiBzdHJva2Utd2lkdGg9IjIiIHJ4PSI2Ij48L3JlY3Q+DQogIDx0ZXh0IHg9IjE0MCIgeT0iMjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWNjIj5DaGlsZCBBPC90ZXh0Pg0KDQogIDxyZWN0IHg9IjIzMCIgeT0iMjQwIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjUwIiBmaWxsPSIjZTNmMmZkIiBzdHJva2U9IiMwMDdhY2MiIHN0cm9rZS13aWR0aD0iMiIgcng9IjYiPjwvcmVjdD4NCiAgPHRleHQgeD0iMzAwIiB5PSIyNzAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiMwMDdhY2MiPi4uLjwvdGV4dD4NCg0KICA8cmVjdCB4PSIzOTAiIHk9IjI0MCIgd2lkdGg9IjE0MCIgaGVpZ2h0PSI1MCIgZmlsbD0iI2UzZjJmZCIgc3Ryb2tlPSIjMDA3YWNjIiBzdHJva2Utd2lkdGg9IjIiIHJ4PSI2Ij48L3JlY3Q+DQogIDx0ZXh0IHg9IjQ2MCIgeT0iMjcwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmaWxsPSIjMDA3YWNjIj5DaGlsZCBCPC90ZXh0Pg0KDQogIDwhLS0gTGluZXMgQ29ubmVjdGluZyBDb21wb25lbnRzIC0tPg0KICA8IS0tIEZyb20gQXBwQ29tcG9uZW50IHRvIFNlY29uZCBMZXZlbCAtLT4NCiAgPGxpbmUgeDE9IjMwMCIgeTE9IjcwIiB4Mj0iMjAwIiB5Mj0iMTIwIiBzdHJva2U9IiM2MDYwNjAiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhcnJvd2hlYWQpIj48L2xpbmU+DQogIDxsaW5lIHgxPSIzMDAiIHkxPSI3MCIgeDI9IjQwMCIgeTI9IjEyMCIgc3Ryb2tlPSIjNjA2MDYwIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkKSI+PC9saW5lPg0KDQogIDwhLS0gRnJvbSBTZWNvbmQgTGV2ZWwgdG8gVGhpcmQgTGV2ZWwgLS0+DQogIDxsaW5lIHgxPSIyMDAiIHkxPSIxNzAiIHgyPSIxNDAiIHkyPSIyNDAiIHN0cm9rZT0iIzYwNjA2MCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiPjwvbGluZT4NCiAgPGxpbmUgeDE9IjQwMCIgeTE9IjE3MCIgeDI9IjQ2MCIgeTI9IjI0MCIgc3Ryb2tlPSIjNjA2MDYwIiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkKSI+PC9saW5lPg0KDQogIDwhLS0gQXJyb3doZWFkIG1hcmtlciAtLT4NCiAgPGRlZnM+DQogICAgPG1hcmtlciBpZD0iYXJyb3doZWFkIiBtYXJrZXJXaWR0aD0iMTAiIG1hcmtlckhlaWdodD0iNyIgcmVmWD0iMTAiIHJlZlk9IjMuNSIgb3JpZW50PSJhdXRvIj4NCiAgICAgIDxwb2x5Z29uIHBvaW50cz0iMCAwLCAxMCAzLjUsIDAgNyIgZmlsbD0iIzYwNjA2MCI+PC9wb2x5Z29uPg0KICAgIDwvbWFya2VyPg0KICA8L2RlZnM+DQo8L3N2Zz4NCg==">
35
+
36
+ **Child B** contains a text input and **Child A** have show the value of the input.
37
+
38
+ In a common case, we would create a specific service with an observable; but it alse means that we have to get an instance of the service in **Child A** and **Child B** and the service itself looks pretty bad - it is just a wrapper over the observable.
39
+
40
+ *I don't event want to describe the idea of sending information through the parents - it is much more painful and dirty.
41
+
42
+ ### The postboy approach
43
+
44
+ ```typescript
45
+ import {PostboyService} from '@artstesh/postboy';
46
+
47
+ public class ChildA {
48
+ constructor(private postboy: PostboyService) {
49
+ }
50
+
51
+ public ngOnInit(){
52
+ this.postboy.sub(UserInputEvent).subscribe(ev => {
53
+ console.log(ev.text);
54
+ })
55
+ }
56
+ }
57
+
58
+ public class ChildB {
59
+ constructor(private postboy: PostboyService) {
60
+ }
61
+
62
+ public onInput(){
63
+ this.postboy.fire(new UserInputEvent(this.text));
64
+ }
65
+ }
66
+ ```
67
+
68
+ ### Key Benefits of This Approach
69
+
70
+ - Clear separation of event generation and event handling.
71
+ - TypeScript interfaces ensure strict typing for the data passed between different parts of the application.
72
+ - The members of the system know nothing about each other
73
+ - No need to create specific mediators
74
+
75
+ ## Advantages of the Library
76
+
77
+ - **Simplicity:** Clear structure for managing events and their processing.
78
+ - **Safety:** TypeScript ensures type-safety, minimizing potential errors.
79
+ - **Flexibility:** `rxjs` integration allows advanced event processing, such as filtering, pre-processing, and combining event streams.
80
+ - **Scalability:** Code becomes clean and easy to extend without introducing unnecessary complexity.
81
+
package/lib/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './postboy-abstract.registrator';
5
5
  export * from './models/postboy-generic-message';
6
6
  export * from './models/postboy-callback.message';
7
7
  export * from './models/postboy.locker';
8
+ export * from './models/postboy-execution.handler';
8
9
  export * from './models/postboy-executor';
9
10
  export * from './models/message-queue.model';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC"}
package/lib/index.js CHANGED
@@ -24,6 +24,7 @@ __exportStar(require("./postboy-abstract.registrator"), exports);
24
24
  __exportStar(require("./models/postboy-generic-message"), exports);
25
25
  __exportStar(require("./models/postboy-callback.message"), exports);
26
26
  __exportStar(require("./models/postboy.locker"), exports);
27
+ __exportStar(require("./models/postboy-execution.handler"), exports);
27
28
  __exportStar(require("./models/postboy-executor"), exports);
28
29
  __exportStar(require("./models/message-queue.model"), exports);
29
30
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,+DAA6C;AAC7C,gEAA8C;AAC9C,iEAA+C;AAC/C,mEAAiD;AACjD,oEAAkD;AAClD,0DAAwC;AACxC,4DAA0C;AAC1C,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,+DAA6C;AAC7C,gEAA8C;AAC9C,iEAA+C;AAC/C,mEAAiD;AACjD,oEAAkD;AAClD,0DAAwC;AACxC,qEAAmD;AACnD,4DAA0C;AAC1C,+DAA6C"}
@@ -0,0 +1,15 @@
1
+ import { PostboyExecutor } from './postboy-executor';
2
+ /**
3
+ * Abstract class representing a handler for executing a Postboy task.
4
+ *
5
+ * This class is intended to manage the execution flow of a PostboyExecutor instance.
6
+ * Subclasses must implement the `handle` method, which executes a given PostboyExecutor
7
+ * and returns a result of type R.
8
+ *
9
+ * @template R The type of the result returned by the `handle` method.
10
+ * @template E The type of the executor extending the PostboyExecutor.
11
+ */
12
+ export declare abstract class PostboyExecutionHandler<R, E extends PostboyExecutor<R>> {
13
+ abstract handle(executor: E): R;
14
+ }
15
+ //# sourceMappingURL=postboy-execution.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postboy-execution.handler.d.ts","sourceRoot":"","sources":["../../src/models/postboy-execution.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;GASG;AACH,8BAAsB,uBAAuB,CAAC,CAAC,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;CAChC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostboyExecutionHandler = void 0;
4
+ /**
5
+ * Abstract class representing a handler for executing a Postboy task.
6
+ *
7
+ * This class is intended to manage the execution flow of a PostboyExecutor instance.
8
+ * Subclasses must implement the `handle` method, which executes a given PostboyExecutor
9
+ * and returns a result of type R.
10
+ *
11
+ * @template R The type of the result returned by the `handle` method.
12
+ * @template E The type of the executor extending the PostboyExecutor.
13
+ */
14
+ class PostboyExecutionHandler {
15
+ }
16
+ exports.PostboyExecutionHandler = PostboyExecutionHandler;
17
+ //# sourceMappingURL=postboy-execution.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postboy-execution.handler.js","sourceRoot":"","sources":["../../src/models/postboy-execution.handler.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,MAAsB,uBAAuB;CAE5C;AAFD,0DAEC"}
@@ -3,6 +3,7 @@ import { Observable, Subject } from 'rxjs';
3
3
  import { IPostboyDependingService } from './i-postboy-depending.service';
4
4
  import { PostboyExecutor } from './models/postboy-executor';
5
5
  import { PostboyGenericMessage } from './models/postboy-generic-message';
6
+ import { PostboyExecutionHandler } from './models/postboy-execution.handler';
6
7
  export type MessageType<T extends PostboyGenericMessage> = new (...args: any[]) => T;
7
8
  export declare abstract class PostboyAbstractRegistrator {
8
9
  protected postboy: PostboyService;
@@ -68,6 +69,14 @@ export declare abstract class PostboyAbstractRegistrator {
68
69
  * @return void
69
70
  */
70
71
  recordExecutor<E extends PostboyExecutor<T>, T>(type: new (...args: any[]) => E, exec: (e: E) => T): void;
72
+ /**
73
+ * Records a handler for a specific executor type.
74
+ *
75
+ * @param executor The constructor of the executor type, which extends `PostboyExecutor`.
76
+ * @param handler The execution handler associated with the given executor type.
77
+ * @return void
78
+ */
79
+ recordHandler<E extends PostboyExecutor<R>, R>(executor: new (...args: any[]) => E, handler: PostboyExecutionHandler<R, E>): void;
71
80
  /**
72
81
  * A utility function that facilitates the recording and replaying of messages
73
82
  * using a ReplaySubject. This function is designed to handle messages of a
@@ -1 +1 @@
1
- {"version":3,"file":"postboy-abstract.registrator.d.ts","sourceRoot":"","sources":["../src/postboy-abstract.registrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAmB,UAAU,EAAiB,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAW,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAElF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,qBAAqB,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAErF,8BAAsB,0BAA0B;IAIlC,SAAS,CAAC,OAAO,EAAE,cAAc;IAH7C,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkC;gBAE5B,OAAO,EAAE,cAAc;IAE7C;;;;;OAKG;IACI,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,IAAI;IAI5D,EAAE,IAAI,IAAI;IAKjB,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI;IAE9B;;OAEG;IACI,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAI7F;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrD;;OAEG;IACI,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrG;;OAEG;IACI,cAAc,UAAW,MAAM,+BAAyE;IAE/G;;OAEG;IACI,gBAAgB,UAAW,MAAM,sBAAoE;IAE5G;;OAEG;IACI,eAAe,UAAW,MAAM,UAAyC;IAEzE,IAAI,IAAI,IAAI;IAOnB;;;;;;OAMG;IACI,MAAM,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAM3F;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,SAAS,qBAAqB,EACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,IAAI;IAMP;;;;;;OAMG;IACI,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAIhH;;;;;;;;;;;;OAYG;IACI,YAAY,uFACmC;IAEtD;;;;;;;;;OASG;IACI,cAAc,8EACgC;IAErD;;;;;;OAMG;IACI,aAAa,kEAAkG;CACvH"}
1
+ {"version":3,"file":"postboy-abstract.registrator.d.ts","sourceRoot":"","sources":["../src/postboy-abstract.registrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAmB,UAAU,EAAiB,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAW,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,qBAAqB,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAErF,8BAAsB,0BAA0B;IAIlC,SAAS,CAAC,OAAO,EAAE,cAAc;IAH7C,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkC;gBAE5B,OAAO,EAAE,cAAc;IAE7C;;;;;OAKG;IACI,gBAAgB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,IAAI;IAI5D,EAAE,IAAI,IAAI;IAKjB,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI;IAE9B;;OAEG;IACI,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAI7F;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrD;;OAEG;IACI,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrG;;OAEG;IACI,cAAc,UAAW,MAAM,+BAAyE;IAE/G;;OAEG;IACI,gBAAgB,UAAW,MAAM,sBAAoE;IAE5G;;OAEG;IACI,eAAe,UAAW,MAAM,UAAyC;IAEzE,IAAI,IAAI,IAAI;IAOnB;;;;;;OAMG;IACI,MAAM,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAM3F;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,SAAS,qBAAqB,EACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,IAAI;IAMP;;;;;;OAMG;IACI,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAIhH;;;;;;OAMG;IACI,aAAa,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAClD,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACnC,OAAO,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,IAAI;IAIP;;;;;;;;;;;;OAYG;IACI,YAAY,uFACmC;IAEtD;;;;;;;;;OASG;IACI,cAAc,8EACgC;IAErD;;;;;;OAMG;IACI,aAAa,kEAAkG;CACvH"}
@@ -127,6 +127,16 @@ class PostboyAbstractRegistrator {
127
127
  recordExecutor(type, exec) {
128
128
  this.postboy.recordExecutor(type, exec);
129
129
  }
130
+ /**
131
+ * Records a handler for a specific executor type.
132
+ *
133
+ * @param executor The constructor of the executor type, which extends `PostboyExecutor`.
134
+ * @param handler The execution handler associated with the given executor type.
135
+ * @return void
136
+ */
137
+ recordHandler(executor, handler) {
138
+ this.postboy.recordHandler(executor, handler);
139
+ }
130
140
  }
131
141
  exports.PostboyAbstractRegistrator = PostboyAbstractRegistrator;
132
142
  //# sourceMappingURL=postboy-abstract.registrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postboy-abstract.registrator.js","sourceRoot":"","sources":["../src/postboy-abstract.registrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postboy-abstract.registrator.js","sourceRoot":"","sources":["../src/postboy-abstract.registrator.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PostboyLocker } from './models/postboy.locker';
4
4
  import { PostboyExecutor } from './models/postboy-executor';
5
5
  import { PostboyCallbackMessage } from './models/postboy-callback.message';
6
6
  import { MessageType } from './postboy-abstract.registrator';
7
+ import { PostboyExecutionHandler } from './models/postboy-execution.handler';
7
8
  export declare class PostboyService {
8
9
  private applications;
9
10
  private locker;
@@ -93,5 +94,13 @@ export declare class PostboyService {
93
94
  * @throws {Error} If the specified executor is not registered.
94
95
  */
95
96
  exec<T>(executor: PostboyExecutor<T>): T;
97
+ /**
98
+ * Manages the recording of an executor and its corresponding handler into internal storage.
99
+ *
100
+ * @param {new (...args: any[]) => E} executor - The constructor for a class extending PostboyExecutor, used to register the executor type.
101
+ * @param {PostboyExecutionHandler<R, E>} handler - The handler responsible for processing the specific executor.
102
+ * @return {void} No return value.
103
+ */
104
+ recordHandler<E extends PostboyExecutor<R>, R>(executor: new (...args: any[]) => E, handler: PostboyExecutionHandler<R, E>): void;
96
105
  }
97
106
  //# sourceMappingURL=postboy.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postboy.service.d.ts","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAW,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,SAAS,CAAsD;IAEvE;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI7C;;OAEG;IACI,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAI7F;;OAEG;IACI,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAM/D;;OAEG;IACI,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACI,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAI9F,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACI,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAM9C;;;;;;OAMG;IACI,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAMjD;;;;;;;OAOG;IACI,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IASzF;;;;;OAKG;IACI,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAMhF;;;;;;OAMG;IACI,MAAM,CAAC,CAAC,SAAS,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3F;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,SAAS,qBAAqB,EACnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,IAAI;IAIP;;;;;;OAMG;IACI,cAAc,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAIhH;;;;;;OAMG;IACI,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;CAIhD"}
1
+ {"version":3,"file":"postboy.service.d.ts","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,16 @@ class PostboyService {
146
146
  throw new Error(`There is no registered executor ${executor.id}`);
147
147
  return this.executors.take(executor.id)(executor);
148
148
  }
149
+ /**
150
+ * Manages the recording of an executor and its corresponding handler into internal storage.
151
+ *
152
+ * @param {new (...args: any[]) => E} executor - The constructor for a class extending PostboyExecutor, used to register the executor type.
153
+ * @param {PostboyExecutionHandler<R, E>} handler - The handler responsible for processing the specific executor.
154
+ * @return {void} No return value.
155
+ */
156
+ recordHandler(executor, handler) {
157
+ this.executors.put((0, postboy_generic_message_1.checkId)(executor), (e) => handler.handle(e));
158
+ }
149
159
  }
150
160
  exports.PostboyService = PostboyService;
151
161
  //# sourceMappingURL=postboy.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artstesh/postboy",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "author": "artstesh",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",