@orchestr-sh/orchestr 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +289 -22
- package/dist/Console/Commands/EventCacheCommand.d.ts +15 -0
- package/dist/Console/Commands/EventCacheCommand.d.ts.map +1 -0
- package/dist/Console/Commands/EventCacheCommand.js +99 -0
- package/dist/Console/Commands/EventCacheCommand.js.map +1 -0
- package/dist/Console/Commands/EventClearCommand.d.ts +15 -0
- package/dist/Console/Commands/EventClearCommand.d.ts.map +1 -0
- package/dist/Console/Commands/EventClearCommand.js +71 -0
- package/dist/Console/Commands/EventClearCommand.js.map +1 -0
- package/dist/Console/Commands/EventListCommand.d.ts +19 -0
- package/dist/Console/Commands/EventListCommand.d.ts.map +1 -0
- package/dist/Console/Commands/EventListCommand.js +106 -0
- package/dist/Console/Commands/EventListCommand.js.map +1 -0
- package/dist/Console/Commands/MakeEventCommand.d.ts +27 -0
- package/dist/Console/Commands/MakeEventCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MakeEventCommand.js +117 -0
- package/dist/Console/Commands/MakeEventCommand.js.map +1 -0
- package/dist/Console/Commands/MakeListenerCommand.d.ts +27 -0
- package/dist/Console/Commands/MakeListenerCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MakeListenerCommand.js +157 -0
- package/dist/Console/Commands/MakeListenerCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateStatusCommand.d.ts.map +1 -1
- package/dist/Console/Commands/MigrateStatusCommand.js.map +1 -1
- package/dist/Console/orchestr.js +10 -0
- package/dist/Console/orchestr.js.map +1 -1
- package/dist/Container/Container.js.map +1 -1
- package/dist/Contracts/Events/Dispatcher.d.ts +94 -0
- package/dist/Contracts/Events/Dispatcher.d.ts.map +1 -0
- package/dist/Contracts/Events/Dispatcher.js +9 -0
- package/dist/Contracts/Events/Dispatcher.js.map +1 -0
- package/dist/Contracts/Events/index.d.ts +7 -0
- package/dist/Contracts/Events/index.d.ts.map +1 -0
- package/dist/Contracts/Events/index.js +8 -0
- package/dist/Contracts/Events/index.js.map +1 -0
- package/dist/Database/Connection.d.ts.map +1 -1
- package/dist/Database/Connection.js.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js +43 -12
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.js +2 -5
- package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
- package/dist/Database/Ensemble/Ensemble.d.ts +7 -0
- package/dist/Database/Ensemble/Ensemble.d.ts.map +1 -1
- package/dist/Database/Ensemble/Ensemble.js +134 -11
- package/dist/Database/Ensemble/Ensemble.js.map +1 -1
- package/dist/Database/Ensemble/EnsembleBuilder.d.ts.map +1 -1
- package/dist/Database/Ensemble/EnsembleBuilder.js +7 -0
- package/dist/Database/Ensemble/EnsembleBuilder.js.map +1 -1
- package/dist/Database/Ensemble/Events/ModelCreated.d.ts +11 -0
- package/dist/Database/Ensemble/Events/ModelCreated.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelCreated.js +16 -0
- package/dist/Database/Ensemble/Events/ModelCreated.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelCreating.d.ts +12 -0
- package/dist/Database/Ensemble/Events/ModelCreating.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelCreating.js +17 -0
- package/dist/Database/Ensemble/Events/ModelCreating.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelDeleted.d.ts +11 -0
- package/dist/Database/Ensemble/Events/ModelDeleted.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelDeleted.js +16 -0
- package/dist/Database/Ensemble/Events/ModelDeleted.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelDeleting.d.ts +12 -0
- package/dist/Database/Ensemble/Events/ModelDeleting.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelDeleting.js +17 -0
- package/dist/Database/Ensemble/Events/ModelDeleting.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelEvent.d.ts +17 -0
- package/dist/Database/Ensemble/Events/ModelEvent.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelEvent.js +22 -0
- package/dist/Database/Ensemble/Events/ModelEvent.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelRetrieved.d.ts +11 -0
- package/dist/Database/Ensemble/Events/ModelRetrieved.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelRetrieved.js +16 -0
- package/dist/Database/Ensemble/Events/ModelRetrieved.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelSaved.d.ts +11 -0
- package/dist/Database/Ensemble/Events/ModelSaved.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelSaved.js +16 -0
- package/dist/Database/Ensemble/Events/ModelSaved.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelSaving.d.ts +12 -0
- package/dist/Database/Ensemble/Events/ModelSaving.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelSaving.js +17 -0
- package/dist/Database/Ensemble/Events/ModelSaving.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelUpdated.d.ts +11 -0
- package/dist/Database/Ensemble/Events/ModelUpdated.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelUpdated.js +16 -0
- package/dist/Database/Ensemble/Events/ModelUpdated.js.map +1 -0
- package/dist/Database/Ensemble/Events/ModelUpdating.d.ts +12 -0
- package/dist/Database/Ensemble/Events/ModelUpdating.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/ModelUpdating.js +17 -0
- package/dist/Database/Ensemble/Events/ModelUpdating.js.map +1 -0
- package/dist/Database/Ensemble/Events/index.d.ts +16 -0
- package/dist/Database/Ensemble/Events/index.d.ts.map +1 -0
- package/dist/Database/Ensemble/Events/index.js +29 -0
- package/dist/Database/Ensemble/Events/index.js.map +1 -0
- package/dist/Database/Ensemble/Relations/BelongsTo.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/BelongsTo.js.map +1 -1
- package/dist/Database/Ensemble/Relations/BelongsToMany.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/BelongsToMany.js +1 -4
- package/dist/Database/Ensemble/Relations/BelongsToMany.js.map +1 -1
- package/dist/Database/Ensemble/Relations/HasMany.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/HasMany.js.map +1 -1
- package/dist/Database/Ensemble/Relations/HasOne.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/HasOne.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphMany.js +2 -6
- package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphOne.js +2 -6
- package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphTo.js +5 -11
- package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphToMany.js +1 -3
- package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -1
- package/dist/Database/Ensemble/Relations/Relation.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/Relation.js +4 -2
- package/dist/Database/Ensemble/Relations/Relation.js.map +1 -1
- package/dist/Database/Migrations/MigrationRepository.d.ts.map +1 -1
- package/dist/Database/Migrations/MigrationRepository.js +4 -19
- package/dist/Database/Migrations/MigrationRepository.js.map +1 -1
- package/dist/Database/Migrations/SchemaBuilder.d.ts.map +1 -1
- package/dist/Database/Migrations/SchemaBuilder.js +5 -15
- package/dist/Database/Migrations/SchemaBuilder.js.map +1 -1
- package/dist/Database/Query/Builder.d.ts.map +1 -1
- package/dist/Database/Query/Builder.js +5 -4
- package/dist/Database/Query/Builder.js.map +1 -1
- package/dist/Events/Concerns/Dispatchable.d.ts +121 -0
- package/dist/Events/Concerns/Dispatchable.d.ts.map +1 -0
- package/dist/Events/Concerns/Dispatchable.js +165 -0
- package/dist/Events/Concerns/Dispatchable.js.map +1 -0
- package/dist/Events/Contracts/Dispatcher.d.ts +144 -0
- package/dist/Events/Contracts/Dispatcher.d.ts.map +1 -0
- package/dist/Events/Contracts/Dispatcher.js +3 -0
- package/dist/Events/Contracts/Dispatcher.js.map +1 -0
- package/dist/Events/Contracts/ShouldDispatchAfterCommit.d.ts +21 -0
- package/dist/Events/Contracts/ShouldDispatchAfterCommit.d.ts.map +1 -0
- package/dist/Events/Contracts/ShouldDispatchAfterCommit.js +3 -0
- package/dist/Events/Contracts/ShouldDispatchAfterCommit.js.map +1 -0
- package/dist/Events/Decorators/HandlesEvents.d.ts +83 -0
- package/dist/Events/Decorators/HandlesEvents.d.ts.map +1 -0
- package/dist/Events/Decorators/HandlesEvents.js +105 -0
- package/dist/Events/Decorators/HandlesEvents.js.map +1 -0
- package/dist/Events/Dispatcher.d.ts +201 -0
- package/dist/Events/Dispatcher.d.ts.map +1 -0
- package/dist/Events/Dispatcher.js +359 -0
- package/dist/Events/Dispatcher.js.map +1 -0
- package/dist/Events/Event.d.ts +140 -0
- package/dist/Events/Event.d.ts.map +1 -0
- package/dist/Events/Event.js +266 -0
- package/dist/Events/Event.js.map +1 -0
- package/dist/Events/EventDiscoveryCache.d.ts +205 -0
- package/dist/Events/EventDiscoveryCache.d.ts.map +1 -0
- package/dist/Events/EventDiscoveryCache.js +310 -0
- package/dist/Events/EventDiscoveryCache.js.map +1 -0
- package/dist/Events/EventServiceProvider.d.ts +148 -0
- package/dist/Events/EventServiceProvider.d.ts.map +1 -0
- package/dist/Events/EventServiceProvider.js +258 -0
- package/dist/Events/EventServiceProvider.js.map +1 -0
- package/dist/Events/NullDispatcher.d.ts +97 -0
- package/dist/Events/NullDispatcher.d.ts.map +1 -0
- package/dist/Events/NullDispatcher.js +118 -0
- package/dist/Events/NullDispatcher.js.map +1 -0
- package/dist/Events/PendingDispatch.d.ts +119 -0
- package/dist/Events/PendingDispatch.d.ts.map +1 -0
- package/dist/Events/PendingDispatch.js +162 -0
- package/dist/Events/PendingDispatch.js.map +1 -0
- package/dist/Events/index.d.ts +12 -0
- package/dist/Events/index.d.ts.map +1 -0
- package/dist/Events/index.js +20 -0
- package/dist/Events/index.js.map +1 -0
- package/dist/Events/types.d.ts +77 -0
- package/dist/Events/types.d.ts.map +1 -0
- package/dist/Events/types.js +3 -0
- package/dist/Events/types.js.map +1 -0
- package/dist/Facades/DB.d.ts.map +1 -1
- package/dist/Facades/DB.js.map +1 -1
- package/dist/Facades/Event.d.ts +200 -0
- package/dist/Facades/Event.d.ts.map +1 -0
- package/dist/Facades/Event.js +331 -0
- package/dist/Facades/Event.js.map +1 -0
- package/dist/Facades/Route.js +1 -1
- package/dist/Foundation/Application.d.ts +33 -0
- package/dist/Foundation/Application.d.ts.map +1 -1
- package/dist/Foundation/Application.js +43 -3
- package/dist/Foundation/Application.js.map +1 -1
- package/dist/Foundation/Config/Config.js +1 -1
- package/dist/Foundation/Config/Config.js.map +1 -1
- package/dist/Foundation/Http/FormRequest.d.ts.map +1 -1
- package/dist/Foundation/Http/FormRequest.js +2 -2
- package/dist/Foundation/Http/FormRequest.js.map +1 -1
- package/dist/Foundation/Http/Kernel.d.ts.map +1 -1
- package/dist/Foundation/Http/Kernel.js +1 -1
- package/dist/Foundation/Http/Kernel.js.map +1 -1
- package/dist/Foundation/Http/Validator.d.ts.map +1 -1
- package/dist/Foundation/Http/Validator.js +27 -22
- package/dist/Foundation/Http/Validator.js.map +1 -1
- package/dist/Listeners/Contracts/ShouldQueue.d.ts +142 -0
- package/dist/Listeners/Contracts/ShouldQueue.d.ts.map +1 -0
- package/dist/Listeners/Contracts/ShouldQueue.js +20 -0
- package/dist/Listeners/Contracts/ShouldQueue.js.map +1 -0
- package/dist/Listeners/Contracts/ShouldQueueAfterCommit.d.ts +24 -0
- package/dist/Listeners/Contracts/ShouldQueueAfterCommit.d.ts.map +1 -0
- package/dist/Listeners/Contracts/ShouldQueueAfterCommit.js +3 -0
- package/dist/Listeners/Contracts/ShouldQueueAfterCommit.js.map +1 -0
- package/dist/Routing/Request.js +1 -1
- package/dist/Routing/Request.js.map +1 -1
- package/dist/Routing/Route.js +1 -1
- package/dist/Routing/Route.js.map +1 -1
- package/dist/Routing/Router.d.ts.map +1 -1
- package/dist/Routing/Router.js +5 -6
- package/dist/Routing/Router.js.map +1 -1
- package/dist/Support/EventDiscovery.d.ts +142 -0
- package/dist/Support/EventDiscovery.d.ts.map +1 -0
- package/dist/Support/EventDiscovery.js +302 -0
- package/dist/Support/EventDiscovery.js.map +1 -0
- package/dist/Support/Facade.js +2 -2
- package/dist/Support/Testing/Fakes/EventFake.d.ts +291 -0
- package/dist/Support/Testing/Fakes/EventFake.d.ts.map +1 -0
- package/dist/Support/Testing/Fakes/EventFake.js +444 -0
- package/dist/Support/Testing/Fakes/EventFake.js.map +1 -0
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/package.json +33 -12
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventDiscoveryCache = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
/**
|
|
7
|
+
* EventDiscoveryCache
|
|
8
|
+
*
|
|
9
|
+
* Manages caching of discovered event-listener mappings to improve performance.
|
|
10
|
+
* Cache is stored as JSON in the storage/framework directory.
|
|
11
|
+
*
|
|
12
|
+
* This prevents the need to scan and parse TypeScript files on every application
|
|
13
|
+
* boot in production environments.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const cache = new EventDiscoveryCache(app)
|
|
18
|
+
*
|
|
19
|
+
* // Check if cache exists
|
|
20
|
+
* if (cache.exists()) {
|
|
21
|
+
* const listeners = cache.load()
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* // Store discovered listeners
|
|
25
|
+
* cache.store(discoveredListeners)
|
|
26
|
+
*
|
|
27
|
+
* // Clear cache
|
|
28
|
+
* cache.clear()
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
class EventDiscoveryCache {
|
|
32
|
+
app;
|
|
33
|
+
/**
|
|
34
|
+
* Current cache format version
|
|
35
|
+
*/
|
|
36
|
+
static CACHE_VERSION = '1.0';
|
|
37
|
+
/**
|
|
38
|
+
* Default cache file path relative to storage directory
|
|
39
|
+
*/
|
|
40
|
+
static CACHE_PATH = 'framework/events.json';
|
|
41
|
+
constructor(app) {
|
|
42
|
+
this.app = app;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the full path to the cache file
|
|
46
|
+
*
|
|
47
|
+
* @returns Absolute path to the events cache file
|
|
48
|
+
*/
|
|
49
|
+
getCachePath() {
|
|
50
|
+
return this.app.storagePath(EventDiscoveryCache.CACHE_PATH);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Determine if the events cache file exists
|
|
54
|
+
*
|
|
55
|
+
* @returns True if cache file exists and is readable
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* if (cache.exists()) {
|
|
60
|
+
* // Use cached events
|
|
61
|
+
* } else {
|
|
62
|
+
* // Discover events
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
exists() {
|
|
67
|
+
try {
|
|
68
|
+
return (0, fs_1.existsSync)(this.getCachePath());
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Load cached event-listener mappings
|
|
76
|
+
*
|
|
77
|
+
* Reads the cache file and returns a Map of event names to listener paths.
|
|
78
|
+
* If the cache file doesn't exist or is invalid, returns an empty Map.
|
|
79
|
+
*
|
|
80
|
+
* @returns Map of event names to array of listener class paths
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const listeners = cache.load()
|
|
85
|
+
* // Returns: Map {
|
|
86
|
+
* // 'UserRegistered' => ['Listeners/SendWelcomeEmail', 'Listeners/CreateUserProfile'],
|
|
87
|
+
* // 'OrderPlaced' => ['Listeners/SendOrderConfirmation']
|
|
88
|
+
* // }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
load() {
|
|
92
|
+
if (!this.exists()) {
|
|
93
|
+
return new Map();
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const cachePath = this.getCachePath();
|
|
97
|
+
const contents = (0, fs_1.readFileSync)(cachePath, 'utf-8');
|
|
98
|
+
const data = JSON.parse(contents);
|
|
99
|
+
// Validate cache version
|
|
100
|
+
if (data.version !== EventDiscoveryCache.CACHE_VERSION) {
|
|
101
|
+
if (this.app.isDebug()) {
|
|
102
|
+
console.warn(`Event cache version mismatch. Expected ${EventDiscoveryCache.CACHE_VERSION}, got ${data.version}`);
|
|
103
|
+
}
|
|
104
|
+
return new Map();
|
|
105
|
+
}
|
|
106
|
+
// Convert cache format to Map
|
|
107
|
+
const listeners = new Map();
|
|
108
|
+
for (const [eventName, entry] of Object.entries(data.events)) {
|
|
109
|
+
listeners.set(eventName, entry.listeners);
|
|
110
|
+
}
|
|
111
|
+
return listeners;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (this.app.isDebug()) {
|
|
115
|
+
console.warn('Failed to load event cache:', error);
|
|
116
|
+
}
|
|
117
|
+
return new Map();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Store event-listener mappings in cache
|
|
122
|
+
*
|
|
123
|
+
* Writes the discovered listeners to the cache file in JSON format.
|
|
124
|
+
* Creates the cache directory if it doesn't exist.
|
|
125
|
+
*
|
|
126
|
+
* @param listeners Map of event names to listener class paths
|
|
127
|
+
* @returns True if cache was successfully written, false otherwise
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* const discovery = new EventDiscovery(app)
|
|
132
|
+
* const listeners = await discovery.discover([app.path('Listeners')])
|
|
133
|
+
* cache.store(listeners)
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
store(listeners) {
|
|
137
|
+
try {
|
|
138
|
+
const cachePath = this.getCachePath();
|
|
139
|
+
const cacheDir = (0, path_1.dirname)(cachePath);
|
|
140
|
+
// Create cache directory if it doesn't exist
|
|
141
|
+
if (!(0, fs_1.existsSync)(cacheDir)) {
|
|
142
|
+
(0, fs_1.mkdirSync)(cacheDir, { recursive: true });
|
|
143
|
+
}
|
|
144
|
+
// Build cache structure
|
|
145
|
+
const cache = {
|
|
146
|
+
version: EventDiscoveryCache.CACHE_VERSION,
|
|
147
|
+
generatedAt: Date.now(),
|
|
148
|
+
events: {}
|
|
149
|
+
};
|
|
150
|
+
const now = Date.now();
|
|
151
|
+
for (const [eventName, listenerList] of listeners) {
|
|
152
|
+
cache.events[eventName] = {
|
|
153
|
+
event: eventName,
|
|
154
|
+
listeners: listenerList,
|
|
155
|
+
cachedAt: now
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// Write cache file with pretty formatting for readability
|
|
159
|
+
(0, fs_1.writeFileSync)(cachePath, JSON.stringify(cache, null, 2), 'utf-8');
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (this.app.isDebug()) {
|
|
164
|
+
console.error('Failed to write event cache:', error);
|
|
165
|
+
}
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Clear the events cache
|
|
171
|
+
*
|
|
172
|
+
* Deletes the cache file. This is typically called by the event:clear command
|
|
173
|
+
* or when the cache needs to be invalidated.
|
|
174
|
+
*
|
|
175
|
+
* @returns True if cache was successfully cleared or didn't exist, false on error
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* cache.clear()
|
|
180
|
+
* // Cache file deleted, discovery will run on next boot
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
clear() {
|
|
184
|
+
try {
|
|
185
|
+
const cachePath = this.getCachePath();
|
|
186
|
+
if (!(0, fs_1.existsSync)(cachePath)) {
|
|
187
|
+
return true; // Already cleared
|
|
188
|
+
}
|
|
189
|
+
const fs = require('fs');
|
|
190
|
+
fs.unlinkSync(cachePath);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (this.app.isDebug()) {
|
|
195
|
+
console.error('Failed to clear event cache:', error);
|
|
196
|
+
}
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Get cache metadata
|
|
202
|
+
*
|
|
203
|
+
* Returns information about the cache without loading all entries.
|
|
204
|
+
* Useful for displaying cache status.
|
|
205
|
+
*
|
|
206
|
+
* @returns Cache metadata or null if cache doesn't exist
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* const metadata = cache.getMetadata()
|
|
211
|
+
* console.log(`Cache generated at: ${new Date(metadata.generatedAt)}`)
|
|
212
|
+
* console.log(`Total events: ${Object.keys(metadata.events).length}`)
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
getMetadata() {
|
|
216
|
+
if (!this.exists()) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
try {
|
|
220
|
+
const cachePath = this.getCachePath();
|
|
221
|
+
const contents = (0, fs_1.readFileSync)(cachePath, 'utf-8');
|
|
222
|
+
const data = JSON.parse(contents);
|
|
223
|
+
return {
|
|
224
|
+
version: data.version,
|
|
225
|
+
generatedAt: data.generatedAt,
|
|
226
|
+
eventCount: Object.keys(data.events).length
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
if (this.app.isDebug()) {
|
|
231
|
+
console.warn('Failed to read event cache metadata:', error);
|
|
232
|
+
}
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Check if cache is stale based on a timestamp
|
|
238
|
+
*
|
|
239
|
+
* Useful for invalidating cache based on file modification times
|
|
240
|
+
* or other external factors.
|
|
241
|
+
*
|
|
242
|
+
* @param threshold Timestamp in milliseconds. Cache is stale if older than this.
|
|
243
|
+
* @returns True if cache exists and is older than threshold
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* // Check if cache is older than 1 hour
|
|
248
|
+
* const oneHourAgo = Date.now() - (60 * 60 * 1000)
|
|
249
|
+
* if (cache.isStale(oneHourAgo)) {
|
|
250
|
+
* cache.clear()
|
|
251
|
+
* // Re-discover events
|
|
252
|
+
* }
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
isStale(threshold) {
|
|
256
|
+
const metadata = this.getMetadata();
|
|
257
|
+
if (!metadata) {
|
|
258
|
+
return true; // No cache = stale
|
|
259
|
+
}
|
|
260
|
+
return metadata.generatedAt < threshold;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get statistics about the cache
|
|
264
|
+
*
|
|
265
|
+
* Returns detailed statistics about cached events and listeners.
|
|
266
|
+
*
|
|
267
|
+
* @returns Cache statistics or null if cache doesn't exist
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```typescript
|
|
271
|
+
* const stats = cache.getStatistics()
|
|
272
|
+
* console.log(`Total events: ${stats.totalEvents}`)
|
|
273
|
+
* console.log(`Total listeners: ${stats.totalListeners}`)
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
getStatistics() {
|
|
277
|
+
if (!this.exists()) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
try {
|
|
281
|
+
const cachePath = this.getCachePath();
|
|
282
|
+
const contents = (0, fs_1.readFileSync)(cachePath, 'utf-8');
|
|
283
|
+
const data = JSON.parse(contents);
|
|
284
|
+
let totalListeners = 0;
|
|
285
|
+
let largestEvent = null;
|
|
286
|
+
for (const [eventName, entry] of Object.entries(data.events)) {
|
|
287
|
+
const listenerCount = entry.listeners.length;
|
|
288
|
+
totalListeners += listenerCount;
|
|
289
|
+
if (!largestEvent || listenerCount > largestEvent.listenerCount) {
|
|
290
|
+
largestEvent = { name: eventName, listenerCount };
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
const totalEvents = Object.keys(data.events).length;
|
|
294
|
+
return {
|
|
295
|
+
totalEvents,
|
|
296
|
+
totalListeners,
|
|
297
|
+
averageListenersPerEvent: totalEvents > 0 ? totalListeners / totalEvents : 0,
|
|
298
|
+
largestEvent
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
if (this.app.isDebug()) {
|
|
303
|
+
console.warn('Failed to calculate cache statistics:', error);
|
|
304
|
+
}
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.EventDiscoveryCache = EventDiscoveryCache;
|
|
310
|
+
//# sourceMappingURL=EventDiscoveryCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventDiscoveryCache.js","sourceRoot":"","sources":["../../src/Events/EventDiscoveryCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { ServiceProvider } from '../Foundation/ServiceProvider';
|
|
2
|
+
import { Dispatcher } from './Dispatcher';
|
|
3
|
+
/**
|
|
4
|
+
* Event Service Provider
|
|
5
|
+
*
|
|
6
|
+
* Provides event registration and discovery services following Laravel's
|
|
7
|
+
* EventServiceProvider pattern. Supports both manual registration and
|
|
8
|
+
* automatic listener discovery.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* export class AppEventServiceProvider extends EventServiceProvider {
|
|
13
|
+
* protected listen = {
|
|
14
|
+
* 'UserRegistered': [
|
|
15
|
+
* 'SendWelcomeEmail',
|
|
16
|
+
* 'CreateUserProfile'
|
|
17
|
+
* ],
|
|
18
|
+
* 'OrderPlaced': 'SendOrderConfirmation'
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* protected subscribe = [
|
|
22
|
+
* 'UserEventSubscriber'
|
|
23
|
+
* ]
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare abstract class EventServiceProvider extends ServiceProvider {
|
|
28
|
+
/**
|
|
29
|
+
* The event listener mappings for the application
|
|
30
|
+
*
|
|
31
|
+
* Maps event names to listener class names (string) or arrays of listener names.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* protected listen = {
|
|
36
|
+
* 'UserRegistered': ['SendWelcomeEmail', 'LogRegistration'],
|
|
37
|
+
* 'OrderPlaced': 'ProcessOrder'
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
protected listen: Record<string, string | string[]>;
|
|
42
|
+
/**
|
|
43
|
+
* The subscriber classes to register
|
|
44
|
+
*
|
|
45
|
+
* Subscribers provide their own event-to-listener mappings via a subscribe() method.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* protected subscribe = [
|
|
50
|
+
* 'UserEventSubscriber',
|
|
51
|
+
* 'OrderEventSubscriber'
|
|
52
|
+
* ]
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
protected subscribe: string[];
|
|
56
|
+
/**
|
|
57
|
+
* Register the application's event listeners
|
|
58
|
+
*
|
|
59
|
+
* Binds the event dispatcher as a singleton in the container.
|
|
60
|
+
*/
|
|
61
|
+
register(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Bootstrap the application events
|
|
64
|
+
*
|
|
65
|
+
* Performs three key operations:
|
|
66
|
+
* 1. Registers manual event-listener mappings from the `listen` property
|
|
67
|
+
* 2. Registers event subscribers from the `subscribe` property
|
|
68
|
+
* 3. Performs automatic event discovery if enabled
|
|
69
|
+
*
|
|
70
|
+
* @throws {Error} If the dispatcher cannot be resolved from the container
|
|
71
|
+
*/
|
|
72
|
+
boot(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Determine if events and listeners should be automatically discovered
|
|
75
|
+
*
|
|
76
|
+
* By default, discovery is enabled unless events are cached.
|
|
77
|
+
* Override this method to customize discovery behavior.
|
|
78
|
+
*
|
|
79
|
+
* @returns {boolean} True if event discovery should run
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* protected shouldDiscoverEvents(): boolean {
|
|
84
|
+
* // Disable discovery in production
|
|
85
|
+
* return this.app.environment() !== 'production'
|
|
86
|
+
* }
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
protected shouldDiscoverEvents(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Discover the events and listeners for the application
|
|
92
|
+
*
|
|
93
|
+
* Uses EventDiscovery to scan specified directories for listener classes
|
|
94
|
+
* and automatically registers them with their corresponding events.
|
|
95
|
+
*
|
|
96
|
+
* @param {Dispatcher} events - The event dispatcher instance
|
|
97
|
+
*
|
|
98
|
+
* @throws {Error} If EventDiscovery is not available (Task 6 dependency)
|
|
99
|
+
*/
|
|
100
|
+
protected discoverEvents(events: Dispatcher): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Get the directories to discover events within
|
|
103
|
+
*
|
|
104
|
+
* By default, uses the paths configured via Application.withEvents()
|
|
105
|
+
* or falls back to the standard 'Listeners' directory.
|
|
106
|
+
*
|
|
107
|
+
* Override this method to customize discovery paths.
|
|
108
|
+
*
|
|
109
|
+
* @returns {string[]} Array of absolute directory paths to scan
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* protected discoverEventsWithin(): string[] {
|
|
114
|
+
* return [
|
|
115
|
+
* this.app.path('Listeners'),
|
|
116
|
+
* this.app.path('Domain/Listeners')
|
|
117
|
+
* ]
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
protected discoverEventsWithin(): string[];
|
|
122
|
+
/**
|
|
123
|
+
* Determine if events are cached
|
|
124
|
+
*
|
|
125
|
+
* Checks for the existence of the cached events file.
|
|
126
|
+
*
|
|
127
|
+
* @returns {boolean} True if cached events file exists
|
|
128
|
+
*/
|
|
129
|
+
protected eventsAreCached(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Get the events and handlers from the cached file
|
|
132
|
+
*
|
|
133
|
+
* Loads and parses the cached events JSON file.
|
|
134
|
+
*
|
|
135
|
+
* @returns {Map<string, string[]>} Map of event names to listener class names
|
|
136
|
+
*/
|
|
137
|
+
protected getCachedEvents(): Map<string, string[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Get all registered event-listener mappings
|
|
140
|
+
*
|
|
141
|
+
* Returns the complete mapping of events to listeners for inspection.
|
|
142
|
+
* Useful for debugging and console commands.
|
|
143
|
+
*
|
|
144
|
+
* @returns {Record<string, string | string[]>} The listen property mappings
|
|
145
|
+
*/
|
|
146
|
+
listens(): Record<string, string | string[]>;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=EventServiceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventServiceProvider.d.ts","sourceRoot":"","sources":["../../src/Events/EventServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,oBAAqB,SAAQ,eAAe;IAChE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAM;IAEzD;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAM;IAEnC;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAShB;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,oBAAoB,IAAI,OAAO;IAKzC;;;;;;;;;OASG;cACa,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBjE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM,EAAE;IAI1C;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO;IAUpC;;;;;;OAMG;IACH,SAAS,CAAC,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAgBlD;;;;;;;OAOG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAG7C"}
|