@orchestr-sh/orchestr 1.6.1 → 1.7.1
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/orchestr.js +10 -0
- package/dist/Console/orchestr.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/Ensemble/Ensemble.d.ts +7 -0
- package/dist/Database/Ensemble/Ensemble.d.ts.map +1 -1
- package/dist/Database/Ensemble/Ensemble.js +119 -0
- 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/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 +164 -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 +13 -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/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/Foundation/Application.d.ts +33 -0
- package/dist/Foundation/Application.d.ts.map +1 -1
- package/dist/Foundation/Application.js +40 -0
- package/dist/Foundation/Application.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/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/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 +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EventListCommand
|
|
4
|
+
*
|
|
5
|
+
* List all registered events and their listeners following Laravel's Artisan pattern
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.EventListCommand = void 0;
|
|
9
|
+
const Command_1 = require("../Command");
|
|
10
|
+
class EventListCommand extends Command_1.Command {
|
|
11
|
+
app;
|
|
12
|
+
signature = 'event:list [--event=]';
|
|
13
|
+
description = 'List the application\'s events and listeners';
|
|
14
|
+
constructor(app) {
|
|
15
|
+
super();
|
|
16
|
+
this.app = app;
|
|
17
|
+
}
|
|
18
|
+
async handle(args, options) {
|
|
19
|
+
try {
|
|
20
|
+
// Try to get the dispatcher - will fail gracefully if not available yet
|
|
21
|
+
const dispatcher = this.app.make('events');
|
|
22
|
+
const listeners = dispatcher.getRawListeners();
|
|
23
|
+
if (listeners.size === 0) {
|
|
24
|
+
this.comment('No events have been registered.');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const filter = options.event;
|
|
28
|
+
const rows = [];
|
|
29
|
+
for (const [event, listenerList] of listeners) {
|
|
30
|
+
// Filter if event option provided
|
|
31
|
+
if (filter && !event.includes(filter)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (listenerList.length === 0) {
|
|
35
|
+
rows.push([event, 'No listeners']);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
listenerList.forEach((listener, index) => {
|
|
39
|
+
rows.push([
|
|
40
|
+
index === 0 ? event : '',
|
|
41
|
+
this.formatListener(listener)
|
|
42
|
+
]);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Add separator between events
|
|
46
|
+
if (rows.length > 0 && rows[rows.length - 1][0] !== '') {
|
|
47
|
+
rows.push(['', '']);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Remove trailing separator
|
|
51
|
+
if (rows.length > 0 && rows[rows.length - 1][0] === '') {
|
|
52
|
+
rows.pop();
|
|
53
|
+
}
|
|
54
|
+
if (rows.length === 0) {
|
|
55
|
+
this.comment(`No events found matching: ${filter}`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.newLine();
|
|
59
|
+
this.info('Registered Events and Listeners:');
|
|
60
|
+
this.newLine();
|
|
61
|
+
// Display results in a formatted table
|
|
62
|
+
const maxEventLength = Math.max(...rows.map(row => row[0].length), 'Event'.length);
|
|
63
|
+
const maxListenerLength = Math.max(...rows.map(row => row[1].length), 'Listeners'.length);
|
|
64
|
+
// Header
|
|
65
|
+
this.line(`${'Event'.padEnd(maxEventLength + 2)} ${'Listeners'.padEnd(maxListenerLength)}`);
|
|
66
|
+
this.line('-'.repeat(maxEventLength + maxListenerLength + 3));
|
|
67
|
+
// Rows
|
|
68
|
+
for (const [event, listener] of rows) {
|
|
69
|
+
if (event === '' && listener === '') {
|
|
70
|
+
this.line('');
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.line(`${event.padEnd(maxEventLength + 2)} ${listener}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.newLine();
|
|
77
|
+
this.comment(`Total events: ${listeners.size}`);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error.message?.includes('events')) {
|
|
81
|
+
this.error('Event dispatcher not registered.');
|
|
82
|
+
this.comment('Make sure the EventServiceProvider is registered in your application.');
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Format a listener for display
|
|
91
|
+
*/
|
|
92
|
+
formatListener(listener) {
|
|
93
|
+
if (typeof listener === 'string') {
|
|
94
|
+
return listener;
|
|
95
|
+
}
|
|
96
|
+
if (typeof listener === 'function') {
|
|
97
|
+
return listener.name || '<Closure>';
|
|
98
|
+
}
|
|
99
|
+
if (typeof listener === 'object' && listener.constructor) {
|
|
100
|
+
return listener.constructor.name;
|
|
101
|
+
}
|
|
102
|
+
return '<Unknown>';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.EventListCommand = EventListCommand;
|
|
106
|
+
//# sourceMappingURL=EventListCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventListCommand.js","sourceRoot":"","sources":["../../../src/Console/Commands/EventListCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MakeEventCommand
|
|
3
|
+
*
|
|
4
|
+
* Create a new event class following Laravel's Artisan pattern
|
|
5
|
+
*/
|
|
6
|
+
import { Command, CommandOptions } from '../Command';
|
|
7
|
+
import { Application } from '../../Foundation/Application';
|
|
8
|
+
export declare class MakeEventCommand extends Command {
|
|
9
|
+
protected app: Application;
|
|
10
|
+
signature: string;
|
|
11
|
+
description: string;
|
|
12
|
+
constructor(app: Application);
|
|
13
|
+
handle(args: string[], options: CommandOptions): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Get the destination path for the event class
|
|
16
|
+
*/
|
|
17
|
+
protected getPath(options: CommandOptions): string;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a file exists
|
|
20
|
+
*/
|
|
21
|
+
protected fileExists(filePath: string): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the stub template for the event class
|
|
24
|
+
*/
|
|
25
|
+
protected getStub(): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=MakeEventCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MakeEventCommand.d.ts","sourceRoot":"","sources":["../../../src/Console/Commands/MakeEventCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,qBAAa,gBAAiB,SAAQ,OAAO;IAI/B,SAAS,CAAC,GAAG,EAAE,WAAW;IAHtC,SAAS,SAAuB;IAChC,WAAW,SAA8B;gBAEnB,GAAG,EAAE,WAAW;IAIhC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCpE;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAIlD;;OAEG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;CAc5B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MakeEventCommand
|
|
4
|
+
*
|
|
5
|
+
* Create a new event class following Laravel's Artisan pattern
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.MakeEventCommand = void 0;
|
|
42
|
+
const Command_1 = require("../Command");
|
|
43
|
+
const fs = __importStar(require("fs/promises"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
class MakeEventCommand extends Command_1.Command {
|
|
46
|
+
app;
|
|
47
|
+
signature = 'make:event <name>';
|
|
48
|
+
description = 'Create a new event class';
|
|
49
|
+
constructor(app) {
|
|
50
|
+
super();
|
|
51
|
+
this.app = app;
|
|
52
|
+
}
|
|
53
|
+
async handle(args, options) {
|
|
54
|
+
const name = args[0];
|
|
55
|
+
if (!name) {
|
|
56
|
+
this.error('Event name is required.');
|
|
57
|
+
this.line('Usage: make:event <name>');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const eventsPath = this.getPath(options);
|
|
61
|
+
const filePath = path.join(eventsPath, `${name}.ts`);
|
|
62
|
+
// Check if file already exists
|
|
63
|
+
if (await this.fileExists(filePath)) {
|
|
64
|
+
this.error(`Event already exists: ${filePath}`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// Create directory if it doesn't exist
|
|
68
|
+
await fs.mkdir(eventsPath, { recursive: true });
|
|
69
|
+
// Generate file content
|
|
70
|
+
const content = this.getStub()
|
|
71
|
+
.replace(/\{\{className\}\}/g, name);
|
|
72
|
+
// Write file
|
|
73
|
+
await fs.writeFile(filePath, content);
|
|
74
|
+
this.info(`Event created successfully: ${filePath}`);
|
|
75
|
+
this.newLine();
|
|
76
|
+
this.comment('Next steps:');
|
|
77
|
+
this.comment('1. Add properties to the event constructor');
|
|
78
|
+
this.comment(`2. Create a listener with: make:listener <name> --event=${name}`);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the destination path for the event class
|
|
82
|
+
*/
|
|
83
|
+
getPath(options) {
|
|
84
|
+
return options.path || this.app.path('Events');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Check if a file exists
|
|
88
|
+
*/
|
|
89
|
+
async fileExists(filePath) {
|
|
90
|
+
try {
|
|
91
|
+
await fs.access(filePath);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the stub template for the event class
|
|
100
|
+
*/
|
|
101
|
+
getStub() {
|
|
102
|
+
return `/**
|
|
103
|
+
* {{className}} Event
|
|
104
|
+
*
|
|
105
|
+
* This event is dispatched when...
|
|
106
|
+
*/
|
|
107
|
+
export class {{className}} {
|
|
108
|
+
constructor(
|
|
109
|
+
// Add your event properties here
|
|
110
|
+
// Example: public readonly user: User
|
|
111
|
+
) {}
|
|
112
|
+
}
|
|
113
|
+
`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.MakeEventCommand = MakeEventCommand;
|
|
117
|
+
//# sourceMappingURL=MakeEventCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MakeEventCommand.js","sourceRoot":"","sources":["../../../src/Console/Commands/MakeEventCommand.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wCAAqD;AAErD,gDAAkC;AAClC,2CAA6B;AAE7B,MAAa,gBAAiB,SAAQ,iBAAO;IAIrB;IAHtB,SAAS,GAAG,mBAAmB,CAAC;IAChC,WAAW,GAAG,0BAA0B,CAAC;IAEzC,YAAsB,GAAgB;QACpC,KAAK,EAAE,CAAC;QADY,QAAG,GAAH,GAAG,CAAa;IAEtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAc,EAAE,OAAuB;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAErD,+BAA+B;QAC/B,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;aAC3B,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAEvC,aAAa;QACb,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,2DAA2D,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACO,OAAO,CAAC,OAAuB;QACvC,OAAQ,OAAO,CAAC,IAAe,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,UAAU,CAAC,QAAgB;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACO,OAAO;QACf,OAAO;;;;;;;;;;;CAWV,CAAC;IACA,CAAC;CACF;AA/ED,4CA+EC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MakeListenerCommand
|
|
3
|
+
*
|
|
4
|
+
* Create a new event listener class following Laravel's Artisan pattern
|
|
5
|
+
*/
|
|
6
|
+
import { Command, CommandOptions } from '../Command';
|
|
7
|
+
import { Application } from '../../Foundation/Application';
|
|
8
|
+
export declare class MakeListenerCommand extends Command {
|
|
9
|
+
protected app: Application;
|
|
10
|
+
signature: string;
|
|
11
|
+
description: string;
|
|
12
|
+
constructor(app: Application);
|
|
13
|
+
handle(args: string[], options: CommandOptions): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Get the destination path for the listener class
|
|
16
|
+
*/
|
|
17
|
+
protected getPath(options: CommandOptions): string;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a file exists
|
|
20
|
+
*/
|
|
21
|
+
protected fileExists(filePath: string): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Get the stub template for the listener class
|
|
24
|
+
*/
|
|
25
|
+
protected getStub(queued: boolean, event?: string): string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=MakeListenerCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MakeListenerCommand.d.ts","sourceRoot":"","sources":["../../../src/Console/Commands/MakeListenerCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,qBAAa,mBAAoB,SAAQ,OAAO;IAIlC,SAAS,CAAC,GAAG,EAAE,WAAW;IAHtC,SAAS,SAAgD;IACzD,WAAW,SAAuC;gBAE5B,GAAG,EAAE,WAAW;IAIhC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CpE;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAIlD;;OAEG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;CA6C3D"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MakeListenerCommand
|
|
4
|
+
*
|
|
5
|
+
* Create a new event listener class following Laravel's Artisan pattern
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.MakeListenerCommand = void 0;
|
|
42
|
+
const Command_1 = require("../Command");
|
|
43
|
+
const fs = __importStar(require("fs/promises"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
class MakeListenerCommand extends Command_1.Command {
|
|
46
|
+
app;
|
|
47
|
+
signature = 'make:listener <name> [--event=] [--queued]';
|
|
48
|
+
description = 'Create a new event listener class';
|
|
49
|
+
constructor(app) {
|
|
50
|
+
super();
|
|
51
|
+
this.app = app;
|
|
52
|
+
}
|
|
53
|
+
async handle(args, options) {
|
|
54
|
+
const name = args[0];
|
|
55
|
+
if (!name) {
|
|
56
|
+
this.error('Listener name is required.');
|
|
57
|
+
this.line('Usage: make:listener <name> [--event=EventName] [--queued]');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const event = options.event;
|
|
61
|
+
const queued = options.queued === true;
|
|
62
|
+
const listenersPath = this.getPath(options);
|
|
63
|
+
const filePath = path.join(listenersPath, `${name}.ts`);
|
|
64
|
+
// Check if file already exists
|
|
65
|
+
if (await this.fileExists(filePath)) {
|
|
66
|
+
this.error(`Listener already exists: ${filePath}`);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Create directory if it doesn't exist
|
|
70
|
+
await fs.mkdir(listenersPath, { recursive: true });
|
|
71
|
+
// Generate file content
|
|
72
|
+
const content = this.getStub(queued, event)
|
|
73
|
+
.replace(/\{\{className\}\}/g, name)
|
|
74
|
+
.replace(/\{\{eventClass\}\}/g, event || 'Event');
|
|
75
|
+
// Write file
|
|
76
|
+
await fs.writeFile(filePath, content);
|
|
77
|
+
this.info(`Listener created successfully: ${filePath}`);
|
|
78
|
+
if (event) {
|
|
79
|
+
this.newLine();
|
|
80
|
+
this.comment('Don\'t forget to register this listener in your EventServiceProvider:');
|
|
81
|
+
this.comment(` protected listen = {`);
|
|
82
|
+
this.comment(` ${event}: '${name}',`);
|
|
83
|
+
this.comment(` }`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.newLine();
|
|
87
|
+
this.comment('Remember to specify the event type in the handle method.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get the destination path for the listener class
|
|
92
|
+
*/
|
|
93
|
+
getPath(options) {
|
|
94
|
+
return options.path || this.app.path('Listeners');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if a file exists
|
|
98
|
+
*/
|
|
99
|
+
async fileExists(filePath) {
|
|
100
|
+
try {
|
|
101
|
+
await fs.access(filePath);
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get the stub template for the listener class
|
|
110
|
+
*/
|
|
111
|
+
getStub(queued, event) {
|
|
112
|
+
if (queued) {
|
|
113
|
+
return `import { ShouldQueue } from '../../Listeners/Contracts/ShouldQueue';${event ? `\nimport { ${event} } from '../Events/${event}';` : ''}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* {{className}} Listener
|
|
117
|
+
*
|
|
118
|
+
* This listener will be queued automatically
|
|
119
|
+
*/
|
|
120
|
+
export class {{className}} implements ShouldQueue {
|
|
121
|
+
// Queue configuration
|
|
122
|
+
public connection = 'default';
|
|
123
|
+
public queue = 'listeners';
|
|
124
|
+
public tries = 3;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Handle the event
|
|
128
|
+
*/
|
|
129
|
+
async handle(event: {{eventClass}}): Promise<void> {
|
|
130
|
+
// Handle the event
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Handle a job failure
|
|
135
|
+
*/
|
|
136
|
+
async failed(event: {{eventClass}}, error: Error): Promise<void> {
|
|
137
|
+
// Handle the failure
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
`;
|
|
141
|
+
}
|
|
142
|
+
return `${event ? `import { ${event} } from '../Events/${event}';\n\n` : ''}/**
|
|
143
|
+
* {{className}} Listener
|
|
144
|
+
*/
|
|
145
|
+
export class {{className}} {
|
|
146
|
+
/**
|
|
147
|
+
* Handle the event
|
|
148
|
+
*/
|
|
149
|
+
handle(event: {{eventClass}}): void {
|
|
150
|
+
// Handle the event
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
`;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.MakeListenerCommand = MakeListenerCommand;
|
|
157
|
+
//# sourceMappingURL=MakeListenerCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MakeListenerCommand.js","sourceRoot":"","sources":["../../../src/Console/Commands/MakeListenerCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/Console/orchestr.js
CHANGED
|
@@ -17,6 +17,11 @@ const MigrateStatusCommand_1 = require("./Commands/MigrateStatusCommand");
|
|
|
17
17
|
const MakeMigrationCommand_1 = require("./Commands/MakeMigrationCommand");
|
|
18
18
|
const SeedCommand_1 = require("./Commands/SeedCommand");
|
|
19
19
|
const MakeSeederCommand_1 = require("./Commands/MakeSeederCommand");
|
|
20
|
+
const MakeEventCommand_1 = require("./Commands/MakeEventCommand");
|
|
21
|
+
const MakeListenerCommand_1 = require("./Commands/MakeListenerCommand");
|
|
22
|
+
const EventListCommand_1 = require("./Commands/EventListCommand");
|
|
23
|
+
const EventCacheCommand_1 = require("./Commands/EventCacheCommand");
|
|
24
|
+
const EventClearCommand_1 = require("./Commands/EventClearCommand");
|
|
20
25
|
// Create application instance
|
|
21
26
|
const app = new Application_1.Application();
|
|
22
27
|
// Create console kernel
|
|
@@ -33,6 +38,11 @@ class OrchestrKernel extends ConsoleKernel_1.ConsoleKernel {
|
|
|
33
38
|
new MakeMigrationCommand_1.MakeMigrationCommand(this.app),
|
|
34
39
|
new SeedCommand_1.SeedCommand(this.app),
|
|
35
40
|
new MakeSeederCommand_1.MakeSeederCommand(this.app),
|
|
41
|
+
new MakeEventCommand_1.MakeEventCommand(this.app),
|
|
42
|
+
new MakeListenerCommand_1.MakeListenerCommand(this.app),
|
|
43
|
+
new EventListCommand_1.EventListCommand(this.app),
|
|
44
|
+
new EventCacheCommand_1.EventCacheCommand(this.app),
|
|
45
|
+
new EventClearCommand_1.EventClearCommand(this.app),
|
|
36
46
|
]);
|
|
37
47
|
}
|
|
38
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestr.js","sourceRoot":"","sources":["../../src/Console/orchestr.ts"],"names":[],"mappings":";;AACA;;;;GAIG;;AAEH,2DAAwD;AACxD,mDAAgD;AAChD,8DAA2D;AAC3D,8EAA2E;AAC3E,wEAAqE;AACrE,4EAAyE;AACzE,wEAAqE;AACrE,0EAAuE;AACvE,0EAAuE;AACvE,wDAAqD;AACrD,oEAAiE;AAEjE,8BAA8B;AAC9B,MAAM,GAAG,GAAG,IAAI,yBAAW,EAAE,CAAC;AAE9B,wBAAwB;AACxB,MAAM,cAAe,SAAQ,6BAAa;IAC9B,gBAAgB;QACxB,8BAA8B;QAC9B,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,+BAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5B,IAAI,+CAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;YACpC,IAAI,yCAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,6CAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,yCAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,2CAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,IAAI,2CAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,IAAI,yBAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,IAAI,qCAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AAED,cAAc;AACd,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"orchestr.js","sourceRoot":"","sources":["../../src/Console/orchestr.ts"],"names":[],"mappings":";;AACA;;;;GAIG;;AAEH,2DAAwD;AACxD,mDAAgD;AAChD,8DAA2D;AAC3D,8EAA2E;AAC3E,wEAAqE;AACrE,4EAAyE;AACzE,wEAAqE;AACrE,0EAAuE;AACvE,0EAAuE;AACvE,wDAAqD;AACrD,oEAAiE;AACjE,kEAA+D;AAC/D,wEAAqE;AACrE,kEAA+D;AAC/D,oEAAiE;AACjE,oEAAiE;AAEjE,8BAA8B;AAC9B,MAAM,GAAG,GAAG,IAAI,yBAAW,EAAE,CAAC;AAE9B,wBAAwB;AACxB,MAAM,cAAe,SAAQ,6BAAa;IAC9B,gBAAgB;QACxB,8BAA8B;QAC9B,IAAI,CAAC,YAAY,CAAC;YAChB,IAAI,+BAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAC5B,IAAI,+CAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;YACpC,IAAI,yCAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,6CAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,yCAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,2CAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,IAAI,2CAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,IAAI,yBAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,IAAI,qCAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,IAAI,mCAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B,IAAI,yCAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,mCAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9B,IAAI,qCAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,IAAI,qCAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;CACF;AAED,cAAc;AACd,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatcher Contract
|
|
3
|
+
*
|
|
4
|
+
* Defines the interface for the event dispatcher
|
|
5
|
+
* This is the minimum contract needed for Task 3 implementation
|
|
6
|
+
*/
|
|
7
|
+
import type { Event } from '../../Events/Event';
|
|
8
|
+
/**
|
|
9
|
+
* Event listener type
|
|
10
|
+
* Can be a class instance, closure, or string reference
|
|
11
|
+
*/
|
|
12
|
+
export type EventListener<TEvent extends Event = Event> = {
|
|
13
|
+
handle(event: TEvent): void | false | Promise<void | false>;
|
|
14
|
+
} | ((event: TEvent) => void | false | Promise<void | false>) | string;
|
|
15
|
+
/**
|
|
16
|
+
* Event subscriber interface
|
|
17
|
+
*/
|
|
18
|
+
export interface EventSubscriber {
|
|
19
|
+
subscribe(events: DispatcherContract): void | Record<string, string | string[]>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Dispatcher Contract Interface
|
|
23
|
+
*
|
|
24
|
+
* Provides event dispatching, listener registration, and queue management
|
|
25
|
+
*/
|
|
26
|
+
export interface DispatcherContract {
|
|
27
|
+
/**
|
|
28
|
+
* Register an event listener with the dispatcher
|
|
29
|
+
*
|
|
30
|
+
* @param events - Event name(s) to listen for
|
|
31
|
+
* @param listener - Listener callback or class
|
|
32
|
+
*/
|
|
33
|
+
listen(events: string | string[], listener: EventListener): void;
|
|
34
|
+
/**
|
|
35
|
+
* Determine if a given event has listeners
|
|
36
|
+
*
|
|
37
|
+
* @param eventName - Name of the event
|
|
38
|
+
* @returns True if listeners exist
|
|
39
|
+
*/
|
|
40
|
+
hasListeners(eventName: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Register an event subscriber with the dispatcher
|
|
43
|
+
*
|
|
44
|
+
* @param subscriber - Event subscriber instance
|
|
45
|
+
*/
|
|
46
|
+
subscribe(subscriber: EventSubscriber): void;
|
|
47
|
+
/**
|
|
48
|
+
* Dispatch an event and call the listeners
|
|
49
|
+
*
|
|
50
|
+
* @param event - Event name or instance
|
|
51
|
+
* @param payload - Additional data to pass to listeners
|
|
52
|
+
* @param halt - Stop on first non-null response
|
|
53
|
+
* @returns Array of listener responses
|
|
54
|
+
*/
|
|
55
|
+
dispatch(event: string | Event, payload?: any[], halt?: boolean): any[];
|
|
56
|
+
/**
|
|
57
|
+
* Dispatch an event until the first non-null response
|
|
58
|
+
*
|
|
59
|
+
* @param event - Event name or instance
|
|
60
|
+
* @param payload - Additional data to pass to listeners
|
|
61
|
+
* @returns First non-null response
|
|
62
|
+
*/
|
|
63
|
+
until(event: string | Event, payload?: any[]): any;
|
|
64
|
+
/**
|
|
65
|
+
* Push an event onto the queue for later dispatch
|
|
66
|
+
*
|
|
67
|
+
* @param event - Event name
|
|
68
|
+
* @param payload - Event data
|
|
69
|
+
*/
|
|
70
|
+
push(event: string, payload?: any[]): void;
|
|
71
|
+
/**
|
|
72
|
+
* Flush a set of pushed events
|
|
73
|
+
*
|
|
74
|
+
* @param event - Event name to flush
|
|
75
|
+
*/
|
|
76
|
+
flush(event: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* Remove all listeners for an event
|
|
79
|
+
*
|
|
80
|
+
* @param event - Event name
|
|
81
|
+
*/
|
|
82
|
+
forget(event: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Forget all pushed events
|
|
85
|
+
*/
|
|
86
|
+
forgetPushed(): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get the raw listeners registered with the dispatcher
|
|
89
|
+
*
|
|
90
|
+
* @returns Map of event names to listeners
|
|
91
|
+
*/
|
|
92
|
+
getRawListeners(): Map<string, EventListener[]>;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=Dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../../src/Contracts/Events/Dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,IAClD;IAAE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAA;CAAE,GAC/D,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,GACzD,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;CACjF;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjE;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAE7C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC;IAExE;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAEnD;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE3C;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IAErB;;;;OAIG;IACH,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dispatcher Contract
|
|
4
|
+
*
|
|
5
|
+
* Defines the interface for the event dispatcher
|
|
6
|
+
* This is the minimum contract needed for Task 3 implementation
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=Dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatcher.js","sourceRoot":"","sources":["../../../src/Contracts/Events/Dispatcher.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Contracts/Events/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Contracts/Events/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -289,5 +289,12 @@ export declare abstract class Ensemble extends HasRelationshipsMixin {
|
|
|
289
289
|
* Get the name of the "created at" column
|
|
290
290
|
*/
|
|
291
291
|
getCreatedAtColumn(): string | null;
|
|
292
|
+
/**
|
|
293
|
+
* Fire the given model event
|
|
294
|
+
*
|
|
295
|
+
* @param event - Event name (saving, saved, creating, created, etc.)
|
|
296
|
+
* @returns false if event is halting and a listener returned false, undefined otherwise
|
|
297
|
+
*/
|
|
298
|
+
protected fireModelEvent(event: string): Promise<boolean | undefined>;
|
|
292
299
|
}
|
|
293
300
|
//# sourceMappingURL=Ensemble.d.ts.map
|