@kanian77/choux 0.2.6 → 0.2.8
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 +62 -16
- package/dist/core/ChouxFacade.d.ts +5 -5
- package/dist/core/ChouxFacade.d.ts.map +1 -1
- package/dist/core/ChouxFacade.js +4 -4
- package/dist/core/ChouxFacade.js.map +1 -1
- package/dist/core/HookRegistry.d.ts +5 -5
- package/dist/core/HookRegistry.d.ts.map +1 -1
- package/dist/core/HookRegistry.js +11 -11
- package/dist/core/HookRegistry.js.map +1 -1
- package/dist/core/HookRegistry.spec.js +21 -21
- package/dist/core/HookRegistry.spec.js.map +1 -1
- package/dist/core/PluginManager.d.ts +1 -0
- package/dist/core/PluginManager.d.ts.map +1 -1
- package/dist/core/PluginManager.js +12 -5
- package/dist/core/PluginManager.js.map +1 -1
- package/dist/core/RuntimePluginLoader.d.ts +9 -0
- package/dist/core/RuntimePluginLoader.d.ts.map +1 -0
- package/dist/core/RuntimePluginLoader.js +53 -0
- package/dist/core/RuntimePluginLoader.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -0
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +1 -0
- package/dist/decorators/index.js.map +1 -1
- package/dist/lib/functions/addHookMetadata.d.ts.map +1 -1
- package/dist/lib/functions/addHookMetadata.js +1 -0
- package/dist/lib/functions/addHookMetadata.js.map +1 -1
- package/dist/lib/functions/index.d.ts +0 -1
- package/dist/lib/functions/index.d.ts.map +1 -1
- package/dist/lib/functions/index.js +0 -1
- package/dist/lib/functions/index.js.map +1 -1
- package/dist/lib/functions/registerHookHandler.d.ts +1 -1
- package/dist/lib/functions/registerHookHandler.d.ts.map +1 -1
- package/dist/lib/functions/registerHookHandler.js +2 -2
- package/dist/lib/functions/registerHookHandler.js.map +1 -1
- package/dist/lib/functions/registerInstanceHooks.d.ts.map +1 -1
- package/dist/lib/functions/registerInstanceHooks.js +2 -2
- package/dist/lib/functions/registerInstanceHooks.js.map +1 -1
- package/dist/lib/functions/registerRequestHookHandler.d.ts +1 -1
- package/dist/lib/functions/registerRequestHookHandler.d.ts.map +1 -1
- package/dist/lib/functions/registerRequestHookHandler.js +2 -2
- package/dist/lib/functions/registerRequestHookHandler.js.map +1 -1
- package/dist/lib/functions/registerStaticHooks.d.ts.map +1 -1
- package/dist/lib/functions/registerStaticHooks.js +2 -2
- package/dist/lib/functions/registerStaticHooks.js.map +1 -1
- package/dist/lib/test-related/plugins/plugin-a/module.d.ts.map +1 -1
- package/dist/lib/test-related/plugins/plugin-a/module.js +1 -1
- package/dist/lib/test-related/plugins/plugin-a/module.js.map +1 -1
- package/dist/lib/test-related/plugins/plugin-b/module.d.ts.map +1 -1
- package/dist/lib/test-related/plugins/plugin-b/module.js +1 -1
- package/dist/lib/test-related/plugins/plugin-b/module.js.map +1 -1
- package/dist/lib/types/IHookMetadata.d.ts +1 -0
- package/dist/lib/types/IHookMetadata.d.ts.map +1 -1
- package/dist/lib/types/IHookRegistry.d.ts +14 -6
- package/dist/lib/types/IHookRegistry.d.ts.map +1 -1
- package/dist/lib/types/PluginModule.d.ts +1 -1
- package/dist/lib/types/PluginModule.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/lib/functions/registerHooksForInstance.d.ts +0 -2
- package/dist/lib/functions/registerHooksForInstance.d.ts.map +0 -1
- package/dist/lib/functions/registerHooksForInstance.js +0 -22
- package/dist/lib/functions/registerHooksForInstance.js.map +0 -1
package/README.md
CHANGED
|
@@ -17,23 +17,37 @@ Plugins are implemented as `PluginModule` classes, which extend the base `Module
|
|
|
17
17
|
### Plugin Loading & Management
|
|
18
18
|
|
|
19
19
|
- **PluginManager (`src/core/PluginManager.ts`)**: Manages the initialization, lifecycle, and shutdown of plugins. It provides methods to load individual plugins, get loaded plugin instances, and properly shutdown plugins.
|
|
20
|
-
- **
|
|
20
|
+
- **ChouxFacade (`src/core/ChouxFacade.ts`)**: A unified facade that combines PluginManager and HookRegistry functionality. This is the recommended way to interact with Choux as it provides a single interface for all plugin and hook operations.
|
|
21
|
+
- **ChouxModule (`src/core/ChouxModule.ts`)**: The main entry point module that provides the core services (PluginManager, HookRegistry, and ChouxFacade). Must be imported and bootstrapped in your application.
|
|
21
22
|
|
|
22
23
|
### Dependency Injection
|
|
23
24
|
|
|
24
|
-
All plugins and core services use the DI system from `@kanian77/tject`. Tokens (see `src/
|
|
25
|
+
All plugins and core services use the DI system from `@kanian77/tject`. Tokens (see `src/lib/types/tokens.ts`) are used to register and inject services. Core tokens are defined as Symbols:
|
|
26
|
+
|
|
27
|
+
- `PLUGIN_MANAGER_TOKEN`: For accessing the PluginManager
|
|
28
|
+
- `HOOK_REGISTRY_TOKEN`: For accessing the HookRegistry
|
|
29
|
+
- `CHOUX_FACADE_TOKEN`: For accessing the ChouxFacade (recommended)
|
|
25
30
|
|
|
26
31
|
### Hooks & Events
|
|
27
32
|
|
|
28
33
|
- **HookRegistry (`src/core/HookRegistry.ts`)**: Central registry for registering, triggering, and managing hooks/events. Plugins can register handlers for lifecycle or custom hooks, and trigger hooks to communicate with other plugins.
|
|
29
|
-
- **Lifecycle Hooks**: Standard hooks for plugin load/init/destroy and application start/shutdown
|
|
34
|
+
- **Lifecycle Hooks**: Standard hooks for plugin load/init/destroy and application start/shutdown. Access them via the `LIFECYCLE_HOOKS` constant:
|
|
35
|
+
- `APPLICATION_START`: 'core:application-start'
|
|
36
|
+
- `BEFORE_PLUGIN_LOAD`: 'core:before-plugin-load'
|
|
37
|
+
- `AFTER_PLUGIN_LOAD`: 'core:after-plugin-load'
|
|
38
|
+
- `BEFORE_PLUGIN_INIT`: 'core:before-plugin-init'
|
|
39
|
+
- `AFTER_PLUGIN_INIT`: 'core:after-plugin-init'
|
|
40
|
+
- `BEFORE_PLUGIN_DESTROY`: 'core:before-plugin-destroy'
|
|
41
|
+
- `AFTER_PLUGIN_DESTROY`: 'core:after-plugin-destroy'
|
|
42
|
+
- `APPLICATION_SHUTDOWN`: 'core:application-shutdown'
|
|
30
43
|
- **Custom Hooks**: Plugins can define and trigger their own hooks for extensibility.
|
|
31
44
|
|
|
32
45
|
### Decorators & Utilities
|
|
33
46
|
|
|
34
|
-
- **Hook Decorators**:
|
|
47
|
+
- **Hook Decorators**: Three decorators work together to enable hook functionality:
|
|
35
48
|
- `@EnableHooks`: Class-level decorator that must be applied to any class using hook decorators
|
|
36
|
-
- `@Hook(hookName)`: Method decorator for registering hook handlers in classes
|
|
49
|
+
- `@Hook(hookName)`: Method decorator for registering standard hook handlers in classes
|
|
50
|
+
- `@RequestHook(hookName)`: Method decorator for registering request hooks that return values (only one handler per hook)
|
|
37
51
|
- **Function Utilities (`src/lib/functions/`)**: Helper functions for hook registration and plugin management.
|
|
38
52
|
- **Types (`src/lib/types/`)**: Shared interfaces and type definitions for plugins, hook registry, plugin manager, and metadata.
|
|
39
53
|
|
|
@@ -46,18 +60,22 @@ To use Choux in your application:
|
|
|
46
60
|
1. Import and bootstrap the ChouxModule:
|
|
47
61
|
|
|
48
62
|
```typescript
|
|
49
|
-
import { bootstrap } from '@kanian77/tject';
|
|
50
|
-
import {
|
|
63
|
+
import { bootstrap, inject } from '@kanian77/tject';
|
|
64
|
+
import {
|
|
65
|
+
ChouxModule,
|
|
66
|
+
CHOUX_FACADE_TOKEN,
|
|
67
|
+
type IChouxFacade,
|
|
68
|
+
} from '@kanian77/choux';
|
|
51
69
|
import { YourPluginModule } from './plugins/your-plugin/module';
|
|
52
70
|
|
|
53
71
|
// Bootstrap the core module
|
|
54
72
|
bootstrap(ChouxModule);
|
|
55
73
|
|
|
56
|
-
// Get
|
|
57
|
-
const
|
|
74
|
+
// Get the Choux facade (recommended approach)
|
|
75
|
+
const choux = inject<IChouxFacade>(CHOUX_FACADE_TOKEN);
|
|
58
76
|
|
|
59
77
|
// Initialize your plugins
|
|
60
|
-
await
|
|
78
|
+
await choux.initializePlugins([YourPluginModule]);
|
|
61
79
|
```
|
|
62
80
|
|
|
63
81
|
### Creating a Plugin
|
|
@@ -65,10 +83,12 @@ await pluginManager.initializePlugins([YourPluginModule]);
|
|
|
65
83
|
Create a new plugin by extending the Plugin class and defining it as a PluginModule:
|
|
66
84
|
|
|
67
85
|
```typescript
|
|
68
|
-
import { Plugin, PluginModule,
|
|
86
|
+
import { Plugin, PluginModule, EnableHooks, Hook } from '@kanian77/choux';
|
|
69
87
|
import { Service } from '@kanian77/tject';
|
|
70
88
|
|
|
71
|
-
|
|
89
|
+
// Define a unique symbol token for your plugin
|
|
90
|
+
export const YOUR_PLUGIN_TOKEN = Symbol('YOUR_PLUGIN');
|
|
91
|
+
|
|
72
92
|
@Service({ token: YOUR_PLUGIN_TOKEN })
|
|
73
93
|
@EnableHooks
|
|
74
94
|
class YourPlugin extends Plugin {
|
|
@@ -89,7 +109,6 @@ class YourPlugin extends Plugin {
|
|
|
89
109
|
}
|
|
90
110
|
}
|
|
91
111
|
|
|
92
|
-
// Enable hook processing for the class
|
|
93
112
|
export const YourPluginModule = new PluginModule({
|
|
94
113
|
token: YOUR_PLUGIN_TOKEN,
|
|
95
114
|
providers: [
|
|
@@ -115,12 +134,39 @@ const yourService = inject<IYourService>(YOUR_SERVICE_TOKEN);
|
|
|
115
134
|
yourService.doSomething();
|
|
116
135
|
```
|
|
117
136
|
|
|
137
|
+
### Using the ChouxFacade
|
|
138
|
+
|
|
139
|
+
The `ChouxFacade` provides a unified interface for both plugin management and hook operations:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
import { inject } from '@kanian77/tject';
|
|
143
|
+
import { CHOUX_FACADE_TOKEN, type ChouxFacade } from '@kanian77/choux';
|
|
144
|
+
|
|
145
|
+
const choux = inject<ChouxFacade>(CHOUX_FACADE_TOKEN);
|
|
146
|
+
|
|
147
|
+
// Plugin management
|
|
148
|
+
await choux.initializePlugins([PluginModule1, PluginModule2]);
|
|
149
|
+
const loadedPlugin = choux.getPlugin('plugin-name'); // Returns { plugin: PluginInstance, metadata: PluginMetadata }
|
|
150
|
+
const allPlugins = choux.getAllPlugins();
|
|
151
|
+
await choux.shutdown();
|
|
152
|
+
|
|
153
|
+
// Hook operations - trigger events
|
|
154
|
+
await choux.trigger('custom:event', eventData);
|
|
155
|
+
|
|
156
|
+
// Hook operations - request values
|
|
157
|
+
const config = await choux.request<ConfigType>('config:get');
|
|
158
|
+
|
|
159
|
+
// Register hooks programmatically
|
|
160
|
+
choux.register('custom:event', target, handlerFunction);
|
|
161
|
+
choux.registerRequest('custom:query', target, queryFunction);
|
|
162
|
+
```
|
|
163
|
+
|
|
118
164
|
## Directory Overview
|
|
119
165
|
|
|
120
|
-
- `src/core/`: Core plugin system (Plugin, PluginManager, HookRegistry,
|
|
121
|
-
- `src/decorators/`: Hook
|
|
166
|
+
- `src/core/`: Core plugin system (Plugin, PluginManager, HookRegistry, ChouxFacade, ChouxModule)
|
|
167
|
+
- `src/decorators/`: Hook decorators (@EnableHooks, @Hook, @RequestHook) and registration utilities
|
|
122
168
|
- `src/lib/functions/`: Helper functions for hooks and plugins
|
|
123
|
-
- `src/lib/types/`: Shared type definitions
|
|
169
|
+
- `src/lib/types/`: Shared type definitions and tokens
|
|
124
170
|
|
|
125
171
|
## License
|
|
126
172
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HookFn, LoadedPlugin, PluginModule, RequestHookFn } from '../lib/types';
|
|
1
|
+
import { HookFn, HookMapEntry, LoadedPlugin, PluginModule, RequestHookFn, RequestHookMapEntry } from '../lib/types';
|
|
2
2
|
import { IChouxFacade } from './IChouxFacade';
|
|
3
3
|
export declare class ChouxFacade implements IChouxFacade {
|
|
4
4
|
private readonly pluginManager;
|
|
@@ -8,14 +8,14 @@ export declare class ChouxFacade implements IChouxFacade {
|
|
|
8
8
|
shutdown(): Promise<void>;
|
|
9
9
|
getPlugin(name: string): LoadedPlugin | undefined;
|
|
10
10
|
getAllPlugins(): LoadedPlugin[];
|
|
11
|
-
register(name: string, fn: HookFn): void;
|
|
11
|
+
register(name: string, target: any, fn: HookFn): void;
|
|
12
12
|
trigger(name: string, ...args: any[]): Promise<void>;
|
|
13
13
|
request<T = any>(name: string, ...args: any[]): Promise<T | undefined>;
|
|
14
|
-
registerRequest(name: string, fn: RequestHookFn): void;
|
|
14
|
+
registerRequest(name: string, target: any, fn: RequestHookFn): void;
|
|
15
15
|
unregister(name: string, fn?: HookFn): void;
|
|
16
16
|
unregisterRequest(name: string): void;
|
|
17
|
-
getHooks(name: string):
|
|
18
|
-
getRequestHook(name: string):
|
|
17
|
+
getHooks(name: string): HookMapEntry[];
|
|
18
|
+
getRequestHook(name: string): RequestHookMapEntry | undefined;
|
|
19
19
|
clear(): void;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=ChouxFacade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChouxFacade.d.ts","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,MAAM,
|
|
1
|
+
{"version":3,"file":"ChouxFacade.d.ts","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,MAAM,EACN,YAAY,EAGZ,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,WAAY,YAAW,YAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAGxC,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAInE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAK/B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI5E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAInE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAItC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI7D,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/core/ChouxFacade.js
CHANGED
|
@@ -82,8 +82,8 @@ let ChouxFacade = (() => {
|
|
|
82
82
|
return this.pluginManager.getAllPlugins();
|
|
83
83
|
}
|
|
84
84
|
// IHookRegistry methods
|
|
85
|
-
register(name, fn) {
|
|
86
|
-
return this.hookRegistry.register(name, fn);
|
|
85
|
+
register(name, target, fn) {
|
|
86
|
+
return this.hookRegistry.register(name, target, fn);
|
|
87
87
|
}
|
|
88
88
|
trigger(name, ...args) {
|
|
89
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -95,8 +95,8 @@ let ChouxFacade = (() => {
|
|
|
95
95
|
return yield this.hookRegistry.request(name, ...args);
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
|
-
registerRequest(name, fn) {
|
|
99
|
-
this.hookRegistry.registerRequest(name, fn);
|
|
98
|
+
registerRequest(name, target, fn) {
|
|
99
|
+
this.hookRegistry.registerRequest(name, target, fn);
|
|
100
100
|
}
|
|
101
101
|
unregister(name, fn) {
|
|
102
102
|
return this.hookRegistry.unregister(name, fn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChouxFacade.js","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ChouxFacade.js","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAMnB,oBAAoB,GAIrB,MAAM,cAAc,CAAC;IAIT,WAAW;4BADvB,OAAO,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;;;;;;;;;;;QAO7D,yBAAyB;QACnB,gBAAgB,CAAC,YAA0B;;gBAC/C,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACjE,CAAC;SAAA;QAEK,iBAAiB,CAAC,aAA6B;;gBACnD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACnE,CAAC;SAAA;QAEK,QAAQ;;gBACZ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7C,CAAC;SAAA;QAED,SAAS,CAAC,IAAY;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC5C,CAAC;QAED,wBAAwB;QACxB,QAAQ,CAAC,IAAY,EAAE,MAAW,EAAE,EAAU;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QAEK,OAAO,CAAC,IAAY,EAAE,GAAG,IAAW;;gBACxC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;SAAA;QAEK,OAAO,CAAU,IAAY,EAAE,GAAG,IAAW;;gBACjD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,CAAC;SAAA;QAED,eAAe,CAAC,IAAY,EAAE,MAAW,EAAE,EAAiB;YAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,UAAU,CAAC,IAAY,EAAE,EAAW;YAClC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,iBAAiB,CAAC,IAAY;YAC5B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,cAAc,CAAC,IAAY;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;;YA5DgB;;;;;eAA+B;YAE/B;;;;;eAA6B;;;;;;;qCAH7C,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oCAEvC,MAAM,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QADvC,yLAAiB,aAAa,6BAAb,aAAa,qGAAkB;QAEhD,sLAAiB,YAAY,6BAAZ,YAAY,mGAAiB;QAJhD,6KA+DC;;;QA/DY,uDAAW;;;;SAAX,WAAW"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HookFn, IHookRegistry, RequestHookFn } from '../lib/types';
|
|
1
|
+
import type { HookFn, HookMapEntry, IHookRegistry, RequestHookFn, RequestHookMapEntry } from '../lib/types';
|
|
2
2
|
/**
|
|
3
3
|
* Registry for application hooks.
|
|
4
4
|
*/
|
|
@@ -10,13 +10,13 @@ export declare class HookRegistry implements IHookRegistry {
|
|
|
10
10
|
* @param name The name of the hook to register the function for.
|
|
11
11
|
* @param fn The hook handler function.
|
|
12
12
|
*/
|
|
13
|
-
register(name: string, fn: HookFn): void;
|
|
13
|
+
register(name: string, target: any, fn: HookFn): void;
|
|
14
14
|
/**
|
|
15
15
|
* Register a hook handler.
|
|
16
16
|
* @param name The name of the hook to register the function for.
|
|
17
17
|
* @param fn The hook handler function.
|
|
18
18
|
*/
|
|
19
|
-
registerRequest(name: string, fn: RequestHookFn): void;
|
|
19
|
+
registerRequest(name: string, target: any, fn: RequestHookFn): void;
|
|
20
20
|
/**
|
|
21
21
|
* Trigger a hook, calling all registered handlers.
|
|
22
22
|
* @param name The name of the hook to trigger.
|
|
@@ -48,13 +48,13 @@ export declare class HookRegistry implements IHookRegistry {
|
|
|
48
48
|
* @param name The name of the hook to retrieve handlers for.
|
|
49
49
|
* @returns An array of hook handler functions.
|
|
50
50
|
*/
|
|
51
|
-
getHooks(name: string):
|
|
51
|
+
getHooks(name: string): HookMapEntry[];
|
|
52
52
|
/**
|
|
53
53
|
* Get registered request handler for a specific request hook.
|
|
54
54
|
* @param name The name of the hook to retrieve a handler for.
|
|
55
55
|
* @returns A hook handler function or undefined.
|
|
56
56
|
*/
|
|
57
|
-
getRequestHook(name: string):
|
|
57
|
+
getRequestHook(name: string): RequestHookMapEntry | undefined;
|
|
58
58
|
/**
|
|
59
59
|
* Clear all registered hooks.
|
|
60
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAEN,aAAa,EACb,aAAa,
|
|
1
|
+
{"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAEN,YAAY,EACZ,aAAa,EACb,aAAa,EAEb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKrD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAQnE;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAmBzB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAW3C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAItC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI7D;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAGD,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC"}
|
|
@@ -75,21 +75,21 @@ let HookRegistry = (() => {
|
|
|
75
75
|
* @param name The name of the hook to register the function for.
|
|
76
76
|
* @param fn The hook handler function.
|
|
77
77
|
*/
|
|
78
|
-
register(name, fn) {
|
|
78
|
+
register(name, target, fn) {
|
|
79
79
|
const list = this.hooks.get(name) || [];
|
|
80
|
-
this.hooks.set(name, [...list, fn]);
|
|
80
|
+
this.hooks.set(name, [...list, { target, fn }]);
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
83
83
|
* Register a hook handler.
|
|
84
84
|
* @param name The name of the hook to register the function for.
|
|
85
85
|
* @param fn The hook handler function.
|
|
86
86
|
*/
|
|
87
|
-
registerRequest(name, fn) {
|
|
87
|
+
registerRequest(name, target, fn) {
|
|
88
88
|
const handler = this.requestHooks.get(name) || undefined;
|
|
89
89
|
if (this.requestHooks.has(name)) {
|
|
90
90
|
console.warn('You are possibly overwritting a request hook.');
|
|
91
91
|
}
|
|
92
|
-
this.requestHooks.set(name, fn);
|
|
92
|
+
this.requestHooks.set(name, { target, fn });
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
95
|
* Trigger a hook, calling all registered handlers.
|
|
@@ -98,9 +98,9 @@ let HookRegistry = (() => {
|
|
|
98
98
|
*/
|
|
99
99
|
trigger(name, ...args) {
|
|
100
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const
|
|
102
|
-
for (const
|
|
103
|
-
yield fn(...args);
|
|
101
|
+
const entries = this.hooks.get(name) || [];
|
|
102
|
+
for (const entry of entries) {
|
|
103
|
+
yield entry.fn.call(entry.target, ...args);
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
}
|
|
@@ -111,14 +111,14 @@ let HookRegistry = (() => {
|
|
|
111
111
|
*/
|
|
112
112
|
request(name, ...args) {
|
|
113
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
-
const
|
|
115
|
-
if (!
|
|
114
|
+
const entry = this.getRequestHook(name);
|
|
115
|
+
if (!entry) {
|
|
116
116
|
console.warn(`No handler registered for requested hook: ${name}`);
|
|
117
117
|
return undefined;
|
|
118
118
|
}
|
|
119
119
|
// Execute the first handler and return its value
|
|
120
120
|
try {
|
|
121
|
-
const result = yield
|
|
121
|
+
const result = yield entry.fn.call(entry.target, ...args);
|
|
122
122
|
return result;
|
|
123
123
|
}
|
|
124
124
|
catch (error) {
|
|
@@ -139,7 +139,7 @@ let HookRegistry = (() => {
|
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
141
|
const list = this.hooks.get(name) || [];
|
|
142
|
-
const filtered = list.filter((
|
|
142
|
+
const filtered = list.filter((entry) => entry.fn !== fn);
|
|
143
143
|
this.hooks.set(name, filtered);
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookRegistry.js","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"HookRegistry.js","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ describe('HookRegistry', () => {
|
|
|
19
19
|
const fn = () => {
|
|
20
20
|
called = true;
|
|
21
21
|
};
|
|
22
|
-
registry.register('test:hook', fn);
|
|
22
|
+
registry.register('test:hook', {}, fn);
|
|
23
23
|
yield registry.trigger('test:hook');
|
|
24
24
|
expect(called).toBe(true);
|
|
25
25
|
}));
|
|
@@ -30,7 +30,7 @@ describe('HookRegistry', () => {
|
|
|
30
30
|
called = true;
|
|
31
31
|
expect(payload).toEqual({ test: 'data' });
|
|
32
32
|
};
|
|
33
|
-
registry.register('test:hook', fn);
|
|
33
|
+
registry.register('test:hook', {}, fn);
|
|
34
34
|
yield registry.trigger('test:hook', payload);
|
|
35
35
|
expect(called).toBe(true);
|
|
36
36
|
}));
|
|
@@ -39,7 +39,7 @@ describe('HookRegistry', () => {
|
|
|
39
39
|
const fn = () => {
|
|
40
40
|
called = true;
|
|
41
41
|
};
|
|
42
|
-
registry.register('test:hook', fn);
|
|
42
|
+
registry.register('test:hook', {}, fn);
|
|
43
43
|
registry.unregister('test:hook', fn);
|
|
44
44
|
yield registry.trigger('test:hook');
|
|
45
45
|
expect(called).toBe(false);
|
|
@@ -49,7 +49,7 @@ describe('HookRegistry', () => {
|
|
|
49
49
|
const fn = () => {
|
|
50
50
|
called = true;
|
|
51
51
|
};
|
|
52
|
-
registry.register('test:hook', fn);
|
|
52
|
+
registry.register('test:hook', {}, fn);
|
|
53
53
|
registry.unregister('test:hook');
|
|
54
54
|
yield registry.trigger('test:hook');
|
|
55
55
|
expect(called).toBe(false);
|
|
@@ -57,16 +57,16 @@ describe('HookRegistry', () => {
|
|
|
57
57
|
it('getHooks returns all registered handlers', () => {
|
|
58
58
|
const fn1 = () => { };
|
|
59
59
|
const fn2 = () => { };
|
|
60
|
-
registry.register('test:hook', fn1);
|
|
61
|
-
registry.register('test:hook', fn2);
|
|
60
|
+
registry.register('test:hook', {}, fn1);
|
|
61
|
+
registry.register('test:hook', {}, fn2);
|
|
62
62
|
const hooks = registry.getHooks('test:hook');
|
|
63
63
|
expect(hooks.length).toBe(2);
|
|
64
|
-
expect(hooks).toContain(fn1);
|
|
65
|
-
expect(hooks).toContain(fn2);
|
|
64
|
+
expect(hooks.map((hook) => hook.fn)).toContain(fn1);
|
|
65
|
+
expect(hooks.map((hook) => hook.fn)).toContain(fn2);
|
|
66
66
|
});
|
|
67
67
|
it('clear removes all hooks', () => {
|
|
68
68
|
const fn = () => { };
|
|
69
|
-
registry.register('test:hook', fn);
|
|
69
|
+
registry.register('test:hook', {}, fn);
|
|
70
70
|
registry.clear();
|
|
71
71
|
expect(registry.getHooks('test:hook').length).toBe(0);
|
|
72
72
|
});
|
|
@@ -78,8 +78,8 @@ describe('HookRegistry', () => {
|
|
|
78
78
|
const fn2 = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
79
|
result += 'b';
|
|
80
80
|
});
|
|
81
|
-
registry.register('test:hook', fn1);
|
|
82
|
-
registry.register('test:hook', fn2);
|
|
81
|
+
registry.register('test:hook', {}, fn1);
|
|
82
|
+
registry.register('test:hook', {}, fn2);
|
|
83
83
|
yield registry.trigger('test:hook');
|
|
84
84
|
expect(result).toBe('ab');
|
|
85
85
|
}));
|
|
@@ -87,7 +87,7 @@ describe('HookRegistry', () => {
|
|
|
87
87
|
describe('HookRegistry - Request/Response', () => {
|
|
88
88
|
it('registers and executes a request hook', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
89
|
const fn = () => 'test data';
|
|
90
|
-
registry.registerRequest('req:hook', fn);
|
|
90
|
+
registry.registerRequest('req:hook', {}, fn);
|
|
91
91
|
const result = yield registry.request('req:hook', 'testProvider');
|
|
92
92
|
expect(result).toBe('test data');
|
|
93
93
|
}));
|
|
@@ -97,19 +97,19 @@ describe('HookRegistry', () => {
|
|
|
97
97
|
expect(p).toEqual(payload);
|
|
98
98
|
return 'got payload';
|
|
99
99
|
};
|
|
100
|
-
registry.registerRequest('req:hook', fn);
|
|
100
|
+
registry.registerRequest('req:hook', {}, fn);
|
|
101
101
|
const result = yield registry.request('req:hook', payload);
|
|
102
102
|
expect(result).toBe('got payload');
|
|
103
103
|
}));
|
|
104
104
|
it('returns undefined if hook name does not match', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
105
105
|
const fn = () => 'test data';
|
|
106
|
-
registry.registerRequest('req:hook', fn);
|
|
106
|
+
registry.registerRequest('req:hook', {}, fn);
|
|
107
107
|
const result = yield registry.request('req:wrong-hook', 'testProvider');
|
|
108
108
|
expect(result).toBeUndefined();
|
|
109
109
|
}));
|
|
110
110
|
it('unregisters a specific request handler', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
111
111
|
const fn = () => 'test data';
|
|
112
|
-
registry.registerRequest('req:hook', fn);
|
|
112
|
+
registry.registerRequest('req:hook', {}, fn);
|
|
113
113
|
// Ensure it's there
|
|
114
114
|
const result1 = yield registry.request('req:hook', 'testProvider');
|
|
115
115
|
expect(result1).toBe('test data');
|
|
@@ -121,8 +121,8 @@ describe('HookRegistry', () => {
|
|
|
121
121
|
it('unregisters all request handlers for a hook name if no fn provided', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
122
122
|
const fn1 = () => 'data 1';
|
|
123
123
|
const fn2 = () => 'data 2';
|
|
124
|
-
registry.registerRequest('req:hook', fn1);
|
|
125
|
-
registry.registerRequest('req:hook', fn2);
|
|
124
|
+
registry.registerRequest('req:hook', {}, fn1);
|
|
125
|
+
registry.registerRequest('req:hook', {}, fn2);
|
|
126
126
|
// Unregister all for 'req:hook'
|
|
127
127
|
registry.unregisterRequest('req:hook');
|
|
128
128
|
const result1 = yield registry.request('req:hook');
|
|
@@ -132,9 +132,9 @@ describe('HookRegistry', () => {
|
|
|
132
132
|
}));
|
|
133
133
|
it('getRequestHook returns the correct handler', () => {
|
|
134
134
|
const fn = () => { };
|
|
135
|
-
registry.registerRequest('req:hook', fn);
|
|
135
|
+
registry.registerRequest('req:hook', {}, fn);
|
|
136
136
|
const hook = registry.getRequestHook('req:hook');
|
|
137
|
-
expect(hook).toBe(fn);
|
|
137
|
+
expect(hook === null || hook === void 0 ? void 0 : hook.fn).toBe(fn);
|
|
138
138
|
});
|
|
139
139
|
});
|
|
140
140
|
// --- Updated Clear Test ---
|
|
@@ -142,8 +142,8 @@ describe('HookRegistry', () => {
|
|
|
142
142
|
// Register one of each
|
|
143
143
|
const fn = () => { };
|
|
144
144
|
const reqFn = () => { };
|
|
145
|
-
registry.register('test:hook', fn);
|
|
146
|
-
registry.registerRequest('req:hook', reqFn);
|
|
145
|
+
registry.register('test:hook', {}, fn);
|
|
146
|
+
registry.registerRequest('req:hook', {}, reqFn);
|
|
147
147
|
// Clear all
|
|
148
148
|
registry.clear();
|
|
149
149
|
// Check both are gone
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookRegistry.spec.js","sourceRoot":"","sources":["../../src/core/HookRegistry.spec.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAS,EAAE;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,GAAW,GAAG,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HookRegistry.spec.js","sourceRoot":"","sources":["../../src/core/HookRegistry.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class PluginManager implements IPluginManager {
|
|
|
7
7
|
initializePlugin(pluginModule: PluginModule): Promise<LoadedPlugin>;
|
|
8
8
|
initializePlugins(pluginModules: PluginModule[]): Promise<void>;
|
|
9
9
|
loadPluginModule(pluginModule: PluginModule): Promise<LoadedPlugin>;
|
|
10
|
+
loadRuntimePlugin(pluginModule: PluginModule): Promise<void>;
|
|
10
11
|
private initializeLoadedPlugin;
|
|
11
12
|
shutdown(): Promise<void>;
|
|
12
13
|
unloadPlugin(pluginName: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMzD,qBACa,aAAc,YAAW,cAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,aAAa,CAAwC;;IAIvD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCnE,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAYpD,sBAAsB;IAmB9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAazB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAI/B,IAAI,YAAY,IAAI,aAAa,CAEhC;CACF"}
|
|
@@ -91,9 +91,9 @@ let PluginManager = (() => {
|
|
|
91
91
|
}
|
|
92
92
|
loadPluginModule(pluginModule) {
|
|
93
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
94
|
+
const hookRegistry = inject(HOOK_REGISTRY_TOKEN, true, pluginModule.scope);
|
|
95
95
|
bootstrap(pluginModule);
|
|
96
|
-
const pluginInstance = inject(pluginModule.token);
|
|
96
|
+
const pluginInstance = inject(pluginModule.token, true, pluginModule.scope);
|
|
97
97
|
yield hookRegistry.trigger(LIFECYCLE_HOOKS.BEFORE_PLUGIN_LOAD, pluginInstance.metadata);
|
|
98
98
|
if (!pluginInstance.metadata) {
|
|
99
99
|
throw new Error(`Plugin ${pluginInstance} must have metadata property`);
|
|
@@ -108,13 +108,20 @@ let PluginManager = (() => {
|
|
|
108
108
|
};
|
|
109
109
|
this.loadedPlugins.set(pluginInstance.metadata.name, loadedPlugin);
|
|
110
110
|
yield hookRegistry.trigger(LIFECYCLE_HOOKS.AFTER_PLUGIN_LOAD, loadedPlugin);
|
|
111
|
-
yield this.initializeLoadedPlugin(loadedPlugin);
|
|
111
|
+
yield this.initializeLoadedPlugin(loadedPlugin, pluginModule.scope);
|
|
112
112
|
return loadedPlugin;
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
loadRuntimePlugin(pluginModule) {
|
|
116
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
|
|
117
|
+
console.log(`[PluginManager] Hot-loading plugin: ${pluginModule.token.toString()}`);
|
|
118
|
+
const loadedPlugin = yield this.loadPluginModule(pluginModule);
|
|
119
|
+
console.log(`[PluginManager] Successfully hot-loaded: ${loadedPlugin.metadata.name}`);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
initializeLoadedPlugin(loaded, scope) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
const hookRegistry = inject(HOOK_REGISTRY_TOKEN, true, scope);
|
|
118
125
|
yield hookRegistry.trigger(LIFECYCLE_HOOKS.BEFORE_PLUGIN_INIT, loaded);
|
|
119
126
|
// Call plugin's onInit lifecycle method
|
|
120
127
|
if (loaded.plugin.onInit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,SAAS,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PluginModule } from '../lib/types/PluginModule';
|
|
2
|
+
export declare class RuntimePluginLoader {
|
|
3
|
+
/**
|
|
4
|
+
* Attempts to load a plugin from an arbitrary file system path.
|
|
5
|
+
* @param absolutePath The full path to the plugin folder
|
|
6
|
+
*/
|
|
7
|
+
loadFromPath(absolutePath: string): Promise<PluginModule>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=RuntimePluginLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimePluginLoader.d.ts","sourceRoot":"","sources":["../../src/core/RuntimePluginLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,mBAAmB;IAC9B;;;OAGG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA2ChE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import fs from 'node:fs/promises';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import { PluginModule } from '../lib/types/PluginModule';
|
|
13
|
+
export class RuntimePluginLoader {
|
|
14
|
+
/**
|
|
15
|
+
* Attempts to load a plugin from an arbitrary file system path.
|
|
16
|
+
* @param absolutePath The full path to the plugin folder
|
|
17
|
+
*/
|
|
18
|
+
loadFromPath(absolutePath) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
// 1. Validate the path exists
|
|
21
|
+
try {
|
|
22
|
+
yield fs.access(absolutePath);
|
|
23
|
+
}
|
|
24
|
+
catch (_a) {
|
|
25
|
+
throw new Error(`Plugin path does not exist: ${absolutePath}`);
|
|
26
|
+
}
|
|
27
|
+
// 2. Resolve entry point based on environment
|
|
28
|
+
let entryPointName = 'index.js';
|
|
29
|
+
if (process.env.ENV === 'dev') {
|
|
30
|
+
entryPointName = 'index.ts';
|
|
31
|
+
}
|
|
32
|
+
const entryPoint = path.join(absolutePath, entryPointName);
|
|
33
|
+
try {
|
|
34
|
+
yield fs.access(entryPoint);
|
|
35
|
+
}
|
|
36
|
+
catch (_b) {
|
|
37
|
+
throw new Error(`Could not find ${entryPointName} in ${absolutePath}. (Env: ${process.env.ENV})`);
|
|
38
|
+
}
|
|
39
|
+
// 3. Dynamic Import
|
|
40
|
+
// We use dynamic import which handles both CJS and ESM
|
|
41
|
+
console.log(`[RuntimeLoader] Importing plugin from: ${entryPoint}`);
|
|
42
|
+
const rawModule = yield import(entryPoint);
|
|
43
|
+
// 4. Extract PluginModule
|
|
44
|
+
// Support both default export and named export 'module' or 'PluginModule'
|
|
45
|
+
const pluginModule = rawModule.default || rawModule.module || rawModule.PluginModule;
|
|
46
|
+
if (!pluginModule || !(pluginModule instanceof PluginModule)) {
|
|
47
|
+
throw new Error(`Module at ${absolutePath} does not export a valid PluginModule.`);
|
|
48
|
+
}
|
|
49
|
+
return pluginModule;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=RuntimePluginLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimePluginLoader.js","sourceRoot":"","sources":["../../src/core/RuntimePluginLoader.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,OAAO,mBAAmB;IAC9B;;;OAGG;IACG,YAAY,CAAC,YAAoB;;YACrC,8BAA8B;YAC9B,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAAC,WAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,8CAA8C;YAC9C,IAAI,cAAc,GAAG,UAAU,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC9B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAE3D,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAAC,WAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,kBAAkB,cAAc,OAAO,YAAY,WAAW,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CACjF,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,uDAAuD;YACvD,OAAO,CAAC,GAAG,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;YAEpE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAE3C,0BAA0B;YAC1B,0EAA0E;YAC1E,MAAM,YAAY,GAChB,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC;YAElE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,YAAY,YAAY,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,wCAAwC,CAClE,CAAC;YACJ,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;CACF"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/dist/core/index.js
CHANGED
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
package/dist/decorators/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,
|
|
1
|
+
{"version":3,"file":"addHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,QA2B1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addHookMetadata.js","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAS,EACT,QAAgB,EAChB,UAAkB,EAClB,SAAkB,EAClB,WAAoB,KAAK;IAEzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAoB,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE1D,qBAAqB;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,UAAU,KAAK,UAAU;QAC3B,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,KAAK,SAAS,CAC5B,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"addHookMetadata.js","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAS,EACT,QAAgB,EAChB,UAAkB,EAClB,SAAkB,EAClB,WAAoB,KAAK;IAEzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAoB,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE1D,qBAAqB;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,UAAU,KAAK,UAAU;QAC3B,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,KAAK,SAAS,CAC5B,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const registerHookHandler: (hookName: string, handler: (...args: any[]) => void | Promise<void>) => void;
|
|
1
|
+
export declare const registerHookHandler: (hookName: string, instance: any, handler: (...args: any[]) => void | Promise<void>) => void;
|
|
2
2
|
//# sourceMappingURL=registerHookHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,aACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"registerHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,aACpB,MAAM,YACN,GAAG,WACJ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject } from '@kanian77/tject';
|
|
2
2
|
import { HOOK_REGISTRY_TOKEN } from '../types/tokens';
|
|
3
|
-
export const registerHookHandler = (hookName, handler) => {
|
|
3
|
+
export const registerHookHandler = (hookName, instance, handler) => {
|
|
4
4
|
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
5
|
-
hookRegistry.register(hookName, handler);
|
|
5
|
+
hookRegistry.register(hookName, instance, handler);
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=registerHookHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EAChB,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registerHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EAChB,QAAa,EACb,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerInstanceHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,aAAc,GAAG,KAAG,
|
|
1
|
+
{"version":3,"file":"registerInstanceHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,aAAc,GAAG,KAAG,IA2CrD,CAAC"}
|
|
@@ -15,10 +15,10 @@ export const registerInstanceHooks = (instance) => {
|
|
|
15
15
|
const originalMethod = method.__original || method;
|
|
16
16
|
// Bind to the instance
|
|
17
17
|
if (!isRequest) {
|
|
18
|
-
registerHookHandler(hookName, originalMethod
|
|
18
|
+
registerHookHandler(hookName, instance, originalMethod);
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
registerRequestHookHandler(hookName, originalMethod
|
|
21
|
+
registerRequestHookHandler(hookName, instance, originalMethod);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerInstanceHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAAQ,EAAE;IAC3D,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAC3D,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EACT,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,GACV,IAAI,YAAY,EAAE,CAAC;YAClB,sCAAsC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,uBAAuB;oBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"registerInstanceHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAAQ,EAAE;IAC3D,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAC3D,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EACT,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,GACV,IAAI,YAAY,EAAE,CAAC;YAClB,sCAAsC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,uBAAuB;oBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAC1D,CAAC;yBAAM,CAAC;wBAEN,0BAA0B,CACxB,QAAQ,EACR,QAAQ,EACR,cAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,0BAA0B,UAAU,8BAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAC/F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,yCAAyC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,EACrE,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const registerRequestHookHandler: (hookName: string, handler: (...args: any[]) => void | Promise<void>) => void;
|
|
1
|
+
export declare const registerRequestHookHandler: (hookName: string, target: any, handler: (...args: any[]) => void | Promise<void>) => void;
|
|
2
2
|
//# sourceMappingURL=registerRequestHookHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerRequestHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,aAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"registerRequestHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,aAC3B,MAAM,UACR,GAAG,WACF,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { inject } from '@kanian77/tject';
|
|
2
2
|
import { HOOK_REGISTRY_TOKEN } from '../types/tokens';
|
|
3
|
-
export const registerRequestHookHandler = (hookName, handler) => {
|
|
3
|
+
export const registerRequestHookHandler = (hookName, target, handler) => {
|
|
4
4
|
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
5
|
-
hookRegistry.registerRequest(hookName, handler);
|
|
5
|
+
hookRegistry.registerRequest(hookName, target, handler);
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=registerRequestHookHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerRequestHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAgB,EAChB,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"registerRequestHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAgB,EAChB,MAAW,EACX,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerStaticHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,gBAAiB,GAAG,KAAG,
|
|
1
|
+
{"version":3,"file":"registerStaticHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,gBAAiB,GAAG,KAAG,IA2CtD,CAAC"}
|
|
@@ -17,10 +17,10 @@ export const registerStaticHooks = (constructor) => {
|
|
|
17
17
|
if (typeof method === 'function') {
|
|
18
18
|
const originalMethod = method.__original || method;
|
|
19
19
|
if (!isRequest) {
|
|
20
|
-
registerHookHandler(hookName, originalMethod
|
|
20
|
+
registerHookHandler(hookName, constructor, originalMethod);
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
registerRequestHookHandler(hookName, originalMethod
|
|
23
|
+
registerRequestHookHandler(hookName, constructor, originalMethod);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerStaticHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAgB,EAAQ,EAAE;IAC5D,IAAI,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAClD,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,YAAY,EAAE,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEvC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"registerStaticHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAgB,EAAQ,EAAE;IAC5D,IAAI,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAClD,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,YAAY,EAAE,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEvC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,0BAA0B,CACxB,QAAQ,EACR,WAAW,EACX,cAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,wBAAwB,UAAU,wBAAwB,WAAW,CAAC,IAAI,GAAG,CAC9E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,uBAAuB,EAAE;YAC1D,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uCAAuC,WAAW,CAAC,IAAI,GAAG,EAC1D,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAM3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAM3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YAQjB,iBAAiB;CAIhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
|
|
@@ -118,7 +118,7 @@ let PluginA = (() => {
|
|
|
118
118
|
}
|
|
119
119
|
registerAdditionalHooks() {
|
|
120
120
|
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
121
|
-
hookRegistry.register('dynamic:custom-hook', this.handleDynamicHook
|
|
121
|
+
hookRegistry.register('dynamic:custom-hook', this, this.handleDynamicHook);
|
|
122
122
|
}
|
|
123
123
|
handleDynamicHook(data) {
|
|
124
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;;4BAC9C,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAClC,WAAW;;;;sBACyB,MAAM;;;;;oCAAd,SAAQ,WAAM;QAQzC,YAAoB,eAAgC;YAClD,KAAK,EAAE,CAAC;YADE;;;;wBARO,mDAAO,EAQN,eAAe;eAAiB;YAP3C;;;;uBAAW;oBAClB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,EAAE,EAAE,qCAAqC;iBACxD;eAAC;QAIF,CAAC;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC;SAAA;QAEc,SAAS;;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAED,kEAAkE;QAEpD,kBAAkB,CAAC,IAAS;;gBACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;SAAA;QAGa,kBAAkB;;gBAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;SAAA;QAGa,kBAAkB,CAAC,UAAkB;;gBACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;SAAA;QAEO,uBAAuB;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;YAChE,YAAY,CAAC,QAAQ,CACnB,qBAAqB,EACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAU3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAU3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YASjB,iBAAiB;CAGhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
|
|
@@ -121,7 +121,7 @@ let PluginB = (() => {
|
|
|
121
121
|
}
|
|
122
122
|
registerAdditionalHooks() {
|
|
123
123
|
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
124
|
-
hookRegistry.register('dynamic:custom-hook', this.handleDynamicHook
|
|
124
|
+
hookRegistry.register('dynamic:custom-hook', this, this.handleDynamicHook);
|
|
125
125
|
}
|
|
126
126
|
handleDynamicHook(data) {
|
|
127
127
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;;4BAC9C,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAClC,WAAW;;;;sBACyB,MAAM;;;;;oCAAd,SAAQ,WAAM;QAQzC,YAAoB,eAAgC;YAClD,KAAK,EAAE,CAAC;YADE;;;;wBARO,mDAAO,EAQN,eAAe;eAAiB;YAP3C;;;;uBAAW;oBAClB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,EAAE,EAAE,qCAAqC;iBACxD;eAAC;QAIF,CAAC;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC;SAAA;QAEc,SAAS;;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAED,mDAAmD;QACnD,yDAAyD;QACzD,IAAI;QAEJ,kEAAkE;QAEpD,kBAAkB,CAAC,IAAS;;gBACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;SAAA;QAGa,kBAAkB;;gBAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;SAAA;QAGa,kBAAkB,CAAC,UAAkB;;gBACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;SAAA;QAEO,uBAAuB;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;YAChE,YAAY,CAAC,QAAQ,CACnB,qBAAqB,EACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;;4BAC9C,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAClC,WAAW;;;;sBACyB,MAAM;;;;;oCAAd,SAAQ,WAAM;QAQzC,YAAoB,eAAgC;YAClD,KAAK,EAAE,CAAC;YADE;;;;wBARO,mDAAO,EAQN,eAAe;eAAiB;YAP3C;;;;uBAAW;oBAClB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,EAAE,EAAE,qCAAqC;iBACxD;eAAC;QAIF,CAAC;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC;SAAA;QAEc,SAAS;;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAED,mDAAmD;QACnD,yDAAyD;QACzD,IAAI;QAEJ,kEAAkE;QAEpD,kBAAkB,CAAC,IAAS;;gBACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;SAAA;QAGa,kBAAkB;;gBAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;SAAA;QAGa,kBAAkB,CAAC,UAAkB;;gBACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;SAAA;QAEO,uBAAuB;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;YAChE,YAAY,CAAC,QAAQ,CACnB,qBAAqB,EACrB,IAAI,EACJ,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACJ,CAAC;QAEa,iBAAiB,CAAC,IAAS;;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;SAAA;;;;;;0CA1BA,IAAI,CAAC,sBAAsB,CAAC;0CAK5B,IAAI,CAAC,wBAAwB,CAAC;0CAK9B,IAAI,CAAC,yBAAyB,CAAC;QAThC,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QA7CH,6KA2DC;;;QA3DoB,uDAAO;;;;AAA5B,uBA2DC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC;IAC5C,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE;QACT;YACE,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,OAAO,EAAE;QACP;YACE,MAAM,EAAE,qBAAqB;YAC7B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;SAC/D;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"IHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
export type HookFn = (...args: any[]) => void | Promise<void>;
|
|
2
2
|
export type RequestHookFn<T = any> = (...args: any[]) => Promise<T> | T;
|
|
3
|
-
export type
|
|
4
|
-
|
|
3
|
+
export type HookMapEntry = {
|
|
4
|
+
target: any;
|
|
5
|
+
fn: HookFn;
|
|
6
|
+
};
|
|
7
|
+
export type RequestHookMapEntry = {
|
|
8
|
+
target: any;
|
|
9
|
+
fn: RequestHookFn;
|
|
10
|
+
};
|
|
11
|
+
export type HookMap = Map<string, HookMapEntry[]>;
|
|
12
|
+
export type RequestHookMap = Map<string, RequestHookMapEntry>;
|
|
5
13
|
export interface IHookRegistry {
|
|
6
|
-
register(name: string, fn: HookFn): void;
|
|
7
|
-
registerRequest(name: string, fn: RequestHookFn): void;
|
|
14
|
+
register(name: string, target: any, fn: HookFn): void;
|
|
15
|
+
registerRequest(name: string, target: any, fn: RequestHookFn): void;
|
|
8
16
|
trigger(name: string, ...args: any[]): Promise<void>;
|
|
9
17
|
request<T = any>(name: string, ...args: any[]): Promise<T | undefined> | T | undefined;
|
|
10
18
|
unregister(name: string, fn?: HookFn): void;
|
|
11
19
|
unregisterRequest(name?: string): void;
|
|
12
|
-
getHooks(name: string):
|
|
13
|
-
getRequestHook(name: string):
|
|
20
|
+
getHooks(name: string): HookMapEntry[];
|
|
21
|
+
getRequestHook(name: string): RequestHookMapEntry | undefined;
|
|
14
22
|
clear(): void;
|
|
15
23
|
}
|
|
16
24
|
//# sourceMappingURL=IHookRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IHookRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"IHookRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,aAAa,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI,CAAC;IACpE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Module, ModuleOptions } from '@kanian77/tject';
|
|
2
2
|
import { Token } from '@kanian77/tject/dist/types/Token';
|
|
3
3
|
export interface PluginModuleOptions extends ModuleOptions {
|
|
4
|
-
token:
|
|
4
|
+
token: Token;
|
|
5
5
|
}
|
|
6
6
|
export declare class PluginModule extends Module {
|
|
7
7
|
token: Token;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginModule.d.ts","sourceRoot":"","sources":["../../../src/lib/types/PluginModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginModule.d.ts","sourceRoot":"","sources":["../../../src/lib/types/PluginModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,KAAK,CAAC;CACd;AACD,qBAAa,YAAa,SAAQ,MAAM;IACtC,KAAK,EAAE,KAAK,CAAM;gBACN,OAAO,EAAE,mBAAmB;CAIzC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kanian77/choux",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"description": "A simple plugin framework for TypeScript.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Patrick Assoa Adou",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"build": "tsc --build --verbose",
|
|
26
26
|
"dev": "tsc --build --verbose --watch",
|
|
27
27
|
"clean": "rm -rf dist && rm -rf tsconfig.tsbuildinfo",
|
|
28
|
-
"
|
|
28
|
+
"prepare": "bun run clean && bun run build",
|
|
29
|
+
"release": "bun run prepare && npm publish --userconfig .npmrc --access public"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@types/bun": "latest",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerHooksForInstance.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHooksForInstance.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAuB5D"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { inject } from '@kanian77/tject';
|
|
2
|
-
import { HOOK_METADATA_KEY, HOOK_REGISTRY_TOKEN } from '../types/tokens';
|
|
3
|
-
export function registerHooksForInstance(instance) {
|
|
4
|
-
const constructor = instance.constructor;
|
|
5
|
-
const hookMetadata = constructor[HOOK_METADATA_KEY] || [];
|
|
6
|
-
if (hookMetadata.length === 0) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
try {
|
|
10
|
-
const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
|
|
11
|
-
for (const { hookName, methodName } of hookMetadata) {
|
|
12
|
-
const method = instance[methodName];
|
|
13
|
-
if (typeof method === 'function') {
|
|
14
|
-
hookRegistry.register(hookName, method.bind(instance));
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
catch (error) {
|
|
19
|
-
console.warn('Failed to register hooks - HookRegistry may not be available yet:', error);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=registerHooksForInstance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerHooksForInstance.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHooksForInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,UAAU,wBAAwB,CAAC,QAAa;IACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,MAAM,YAAY,GAAoB,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAE3E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;QAEhE,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,YAAY,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,mEAAmE,EACnE,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC"}
|