@orchestr-sh/orchestr 1.6.1 → 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/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 +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/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,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelSaving Event
|
|
3
|
+
*
|
|
4
|
+
* Fired before a model is saved (before insert or update)
|
|
5
|
+
* Returning false from a listener will halt the operation
|
|
6
|
+
*/
|
|
7
|
+
import { Ensemble } from '../Ensemble';
|
|
8
|
+
import { ModelEvent } from './ModelEvent';
|
|
9
|
+
export declare class ModelSaving<T extends Ensemble = Ensemble> extends ModelEvent<T> {
|
|
10
|
+
constructor(model: T);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ModelSaving.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSaving.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelSaving.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;gBAC/D,KAAK,EAAE,CAAC;CAGrB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModelSaving Event
|
|
4
|
+
*
|
|
5
|
+
* Fired before a model is saved (before insert or update)
|
|
6
|
+
* Returning false from a listener will halt the operation
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ModelSaving = void 0;
|
|
10
|
+
const ModelEvent_1 = require("./ModelEvent");
|
|
11
|
+
class ModelSaving extends ModelEvent_1.ModelEvent {
|
|
12
|
+
constructor(model) {
|
|
13
|
+
super(model);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ModelSaving = ModelSaving;
|
|
17
|
+
//# sourceMappingURL=ModelSaving.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelSaving.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelSaving.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6CAA0C;AAE1C,MAAa,WAA2C,SAAQ,uBAAa;IAC3E,YAAY,KAAQ;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAJD,kCAIC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelUpdated Event
|
|
3
|
+
*
|
|
4
|
+
* Fired after a model is updated (after update query)
|
|
5
|
+
*/
|
|
6
|
+
import { Ensemble } from '../Ensemble';
|
|
7
|
+
import { ModelEvent } from './ModelEvent';
|
|
8
|
+
export declare class ModelUpdated<T extends Ensemble = Ensemble> extends ModelEvent<T> {
|
|
9
|
+
constructor(model: T);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ModelUpdated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelUpdated.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelUpdated.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;gBAChE,KAAK,EAAE,CAAC;CAGrB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModelUpdated Event
|
|
4
|
+
*
|
|
5
|
+
* Fired after a model is updated (after update query)
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ModelUpdated = void 0;
|
|
9
|
+
const ModelEvent_1 = require("./ModelEvent");
|
|
10
|
+
class ModelUpdated extends ModelEvent_1.ModelEvent {
|
|
11
|
+
constructor(model) {
|
|
12
|
+
super(model);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ModelUpdated = ModelUpdated;
|
|
16
|
+
//# sourceMappingURL=ModelUpdated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelUpdated.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelUpdated.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,6CAA0C;AAE1C,MAAa,YAA4C,SAAQ,uBAAa;IAC5E,YAAY,KAAQ;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAJD,oCAIC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelUpdating Event
|
|
3
|
+
*
|
|
4
|
+
* Fired before a model is updated (before update query)
|
|
5
|
+
* Returning false from a listener will halt the operation
|
|
6
|
+
*/
|
|
7
|
+
import { Ensemble } from '../Ensemble';
|
|
8
|
+
import { ModelEvent } from './ModelEvent';
|
|
9
|
+
export declare class ModelUpdating<T extends Ensemble = Ensemble> extends ModelEvent<T> {
|
|
10
|
+
constructor(model: T);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ModelUpdating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelUpdating.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelUpdating.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,qBAAa,aAAa,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;gBACjE,KAAK,EAAE,CAAC;CAGrB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ModelUpdating Event
|
|
4
|
+
*
|
|
5
|
+
* Fired before a model is updated (before update query)
|
|
6
|
+
* Returning false from a listener will halt the operation
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ModelUpdating = void 0;
|
|
10
|
+
const ModelEvent_1 = require("./ModelEvent");
|
|
11
|
+
class ModelUpdating extends ModelEvent_1.ModelEvent {
|
|
12
|
+
constructor(model) {
|
|
13
|
+
super(model);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ModelUpdating = ModelUpdating;
|
|
17
|
+
//# sourceMappingURL=ModelUpdating.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelUpdating.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/ModelUpdating.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,6CAA0C;AAE1C,MAAa,aAA6C,SAAQ,uBAAa;IAC7E,YAAY,KAAQ;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAJD,sCAIC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensemble Model Events
|
|
3
|
+
*
|
|
4
|
+
* Export all model lifecycle events
|
|
5
|
+
*/
|
|
6
|
+
export { ModelEvent } from './ModelEvent';
|
|
7
|
+
export { ModelRetrieved } from './ModelRetrieved';
|
|
8
|
+
export { ModelCreating } from './ModelCreating';
|
|
9
|
+
export { ModelCreated } from './ModelCreated';
|
|
10
|
+
export { ModelUpdating } from './ModelUpdating';
|
|
11
|
+
export { ModelUpdated } from './ModelUpdated';
|
|
12
|
+
export { ModelSaving } from './ModelSaving';
|
|
13
|
+
export { ModelSaved } from './ModelSaved';
|
|
14
|
+
export { ModelDeleting } from './ModelDeleting';
|
|
15
|
+
export { ModelDeleted } from './ModelDeleted';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ensemble Model Events
|
|
4
|
+
*
|
|
5
|
+
* Export all model lifecycle events
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.ModelDeleted = exports.ModelDeleting = exports.ModelSaved = exports.ModelSaving = exports.ModelUpdated = exports.ModelUpdating = exports.ModelCreated = exports.ModelCreating = exports.ModelRetrieved = exports.ModelEvent = void 0;
|
|
9
|
+
var ModelEvent_1 = require("./ModelEvent");
|
|
10
|
+
Object.defineProperty(exports, "ModelEvent", { enumerable: true, get: function () { return ModelEvent_1.ModelEvent; } });
|
|
11
|
+
var ModelRetrieved_1 = require("./ModelRetrieved");
|
|
12
|
+
Object.defineProperty(exports, "ModelRetrieved", { enumerable: true, get: function () { return ModelRetrieved_1.ModelRetrieved; } });
|
|
13
|
+
var ModelCreating_1 = require("./ModelCreating");
|
|
14
|
+
Object.defineProperty(exports, "ModelCreating", { enumerable: true, get: function () { return ModelCreating_1.ModelCreating; } });
|
|
15
|
+
var ModelCreated_1 = require("./ModelCreated");
|
|
16
|
+
Object.defineProperty(exports, "ModelCreated", { enumerable: true, get: function () { return ModelCreated_1.ModelCreated; } });
|
|
17
|
+
var ModelUpdating_1 = require("./ModelUpdating");
|
|
18
|
+
Object.defineProperty(exports, "ModelUpdating", { enumerable: true, get: function () { return ModelUpdating_1.ModelUpdating; } });
|
|
19
|
+
var ModelUpdated_1 = require("./ModelUpdated");
|
|
20
|
+
Object.defineProperty(exports, "ModelUpdated", { enumerable: true, get: function () { return ModelUpdated_1.ModelUpdated; } });
|
|
21
|
+
var ModelSaving_1 = require("./ModelSaving");
|
|
22
|
+
Object.defineProperty(exports, "ModelSaving", { enumerable: true, get: function () { return ModelSaving_1.ModelSaving; } });
|
|
23
|
+
var ModelSaved_1 = require("./ModelSaved");
|
|
24
|
+
Object.defineProperty(exports, "ModelSaved", { enumerable: true, get: function () { return ModelSaved_1.ModelSaved; } });
|
|
25
|
+
var ModelDeleting_1 = require("./ModelDeleting");
|
|
26
|
+
Object.defineProperty(exports, "ModelDeleting", { enumerable: true, get: function () { return ModelDeleting_1.ModelDeleting; } });
|
|
27
|
+
var ModelDeleted_1 = require("./ModelDeleted");
|
|
28
|
+
Object.defineProperty(exports, "ModelDeleted", { enumerable: true, get: function () { return ModelDeleted_1.ModelDeleted; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Events/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatchable Concern
|
|
3
|
+
*
|
|
4
|
+
* Provides static dispatch methods for events
|
|
5
|
+
* This mixin is applied to the Event base class to enable:
|
|
6
|
+
* - Event.dispatch() - Dispatch immediately
|
|
7
|
+
* - Event.dispatchIf() - Conditional dispatch
|
|
8
|
+
* - Event.dispatchUnless() - Negative conditional dispatch
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* // Dispatch an event
|
|
13
|
+
* UserRegistered.dispatch(user);
|
|
14
|
+
*
|
|
15
|
+
* // Conditional dispatch
|
|
16
|
+
* UserRegistered.dispatchIf(shouldNotify, user);
|
|
17
|
+
*
|
|
18
|
+
* // Dispatch unless condition is true
|
|
19
|
+
* UserRegistered.dispatchUnless(user.isAdmin, user);
|
|
20
|
+
*
|
|
21
|
+
* // Dispatch and wait for first response
|
|
22
|
+
* const result = UserRegistered.until(user);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Dispatchable mixin class
|
|
27
|
+
*
|
|
28
|
+
* Provides static methods for dispatching events
|
|
29
|
+
*/
|
|
30
|
+
export declare class Dispatchable {
|
|
31
|
+
/**
|
|
32
|
+
* Dispatch the event with the given arguments
|
|
33
|
+
*
|
|
34
|
+
* Creates a new instance of the event class and dispatches it through the event dispatcher
|
|
35
|
+
*
|
|
36
|
+
* @param args - Constructor arguments for the event
|
|
37
|
+
* @returns Array of listener responses
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* class UserRegistered extends Event {
|
|
42
|
+
* constructor(public user: User) {
|
|
43
|
+
* super();
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
*
|
|
47
|
+
* // Dispatch the event
|
|
48
|
+
* UserRegistered.dispatch(user);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
static dispatch(...args: any[]): any[];
|
|
52
|
+
/**
|
|
53
|
+
* Dispatch the event if the given condition is true
|
|
54
|
+
*
|
|
55
|
+
* @param condition - Boolean or function that returns boolean
|
|
56
|
+
* @param args - Constructor arguments for the event
|
|
57
|
+
* @returns Array of listener responses or empty array if condition is false
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Dispatch if condition is true
|
|
62
|
+
* UserRegistered.dispatchIf(user.isActive, user);
|
|
63
|
+
*
|
|
64
|
+
* // Dispatch if function returns true
|
|
65
|
+
* UserRegistered.dispatchIf(() => shouldNotify(), user);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
static dispatchIf(condition: boolean | (() => boolean), ...args: any[]): any[];
|
|
69
|
+
/**
|
|
70
|
+
* Dispatch the event unless the given condition is true
|
|
71
|
+
*
|
|
72
|
+
* @param condition - Boolean or function that returns boolean
|
|
73
|
+
* @param args - Constructor arguments for the event
|
|
74
|
+
* @returns Array of listener responses or empty array if condition is true
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* // Dispatch unless user is admin
|
|
79
|
+
* UserRegistered.dispatchUnless(user.isAdmin, user);
|
|
80
|
+
*
|
|
81
|
+
* // Dispatch unless function returns true
|
|
82
|
+
* UserRegistered.dispatchUnless(() => user.hasRole('admin'), user);
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
static dispatchUnless(condition: boolean | (() => boolean), ...args: any[]): any[];
|
|
86
|
+
/**
|
|
87
|
+
* Dispatch the event and call the first listener that doesn't return null
|
|
88
|
+
*
|
|
89
|
+
* This is useful when you want to get a response from an event listener
|
|
90
|
+
*
|
|
91
|
+
* @param args - Constructor arguments for the event
|
|
92
|
+
* @returns First non-null listener response
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* // Get a response from the first listener
|
|
97
|
+
* const result = UserRegistered.until(user);
|
|
98
|
+
* if (result === false) {
|
|
99
|
+
* // Listener vetoed the operation
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
static until(...args: any[]): any;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Type declaration to merge Dispatchable methods into Event class
|
|
107
|
+
* This enables TypeScript to understand that Event has these static methods
|
|
108
|
+
*/
|
|
109
|
+
export interface Event extends Dispatchable {
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Apply Dispatchable mixin to Event class
|
|
113
|
+
*
|
|
114
|
+
* This function copies all static methods from Dispatchable to the target Event class
|
|
115
|
+
*
|
|
116
|
+
* @param eventClass - The Event class to apply the mixin to
|
|
117
|
+
*
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
export declare function applyDispatchable(eventClass: any): void;
|
|
121
|
+
//# sourceMappingURL=Dispatchable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatchable.d.ts","sourceRoot":"","sources":["../../../src/Events/Concerns/Dispatchable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH;;;;GAIG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAStC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAU9E;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;IAUlF;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;CAQlC;AAED;;;GAGG;AACH,MAAM,WAAW,KAAM,SAAQ,YAAY;CAAG;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,CAuBvD"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dispatchable Concern
|
|
4
|
+
*
|
|
5
|
+
* Provides static dispatch methods for events
|
|
6
|
+
* This mixin is applied to the Event base class to enable:
|
|
7
|
+
* - Event.dispatch() - Dispatch immediately
|
|
8
|
+
* - Event.dispatchIf() - Conditional dispatch
|
|
9
|
+
* - Event.dispatchUnless() - Negative conditional dispatch
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Dispatch an event
|
|
14
|
+
* UserRegistered.dispatch(user);
|
|
15
|
+
*
|
|
16
|
+
* // Conditional dispatch
|
|
17
|
+
* UserRegistered.dispatchIf(shouldNotify, user);
|
|
18
|
+
*
|
|
19
|
+
* // Dispatch unless condition is true
|
|
20
|
+
* UserRegistered.dispatchUnless(user.isAdmin, user);
|
|
21
|
+
*
|
|
22
|
+
* // Dispatch and wait for first response
|
|
23
|
+
* const result = UserRegistered.until(user);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.Dispatchable = void 0;
|
|
28
|
+
exports.applyDispatchable = applyDispatchable;
|
|
29
|
+
const Facade_1 = require("../../Support/Facade");
|
|
30
|
+
/**
|
|
31
|
+
* Dispatchable mixin class
|
|
32
|
+
*
|
|
33
|
+
* Provides static methods for dispatching events
|
|
34
|
+
*/
|
|
35
|
+
class Dispatchable {
|
|
36
|
+
/**
|
|
37
|
+
* Dispatch the event with the given arguments
|
|
38
|
+
*
|
|
39
|
+
* Creates a new instance of the event class and dispatches it through the event dispatcher
|
|
40
|
+
*
|
|
41
|
+
* @param args - Constructor arguments for the event
|
|
42
|
+
* @returns Array of listener responses
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* class UserRegistered extends Event {
|
|
47
|
+
* constructor(public user: User) {
|
|
48
|
+
* super();
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*
|
|
52
|
+
* // Dispatch the event
|
|
53
|
+
* UserRegistered.dispatch(user);
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
static dispatch(...args) {
|
|
57
|
+
const app = Facade_1.Facade.getFacadeApplication();
|
|
58
|
+
if (!app) {
|
|
59
|
+
throw new Error('Application not initialized. Cannot dispatch event.');
|
|
60
|
+
}
|
|
61
|
+
return app.make('events').dispatch(new this(...args));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Dispatch the event if the given condition is true
|
|
65
|
+
*
|
|
66
|
+
* @param condition - Boolean or function that returns boolean
|
|
67
|
+
* @param args - Constructor arguments for the event
|
|
68
|
+
* @returns Array of listener responses or empty array if condition is false
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* // Dispatch if condition is true
|
|
73
|
+
* UserRegistered.dispatchIf(user.isActive, user);
|
|
74
|
+
*
|
|
75
|
+
* // Dispatch if function returns true
|
|
76
|
+
* UserRegistered.dispatchIf(() => shouldNotify(), user);
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
static dispatchIf(condition, ...args) {
|
|
80
|
+
const shouldDispatch = typeof condition === 'function' ? condition() : condition;
|
|
81
|
+
if (shouldDispatch) {
|
|
82
|
+
return this.dispatch(...args);
|
|
83
|
+
}
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Dispatch the event unless the given condition is true
|
|
88
|
+
*
|
|
89
|
+
* @param condition - Boolean or function that returns boolean
|
|
90
|
+
* @param args - Constructor arguments for the event
|
|
91
|
+
* @returns Array of listener responses or empty array if condition is true
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // Dispatch unless user is admin
|
|
96
|
+
* UserRegistered.dispatchUnless(user.isAdmin, user);
|
|
97
|
+
*
|
|
98
|
+
* // Dispatch unless function returns true
|
|
99
|
+
* UserRegistered.dispatchUnless(() => user.hasRole('admin'), user);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
static dispatchUnless(condition, ...args) {
|
|
103
|
+
const shouldNotDispatch = typeof condition === 'function' ? condition() : condition;
|
|
104
|
+
if (!shouldNotDispatch) {
|
|
105
|
+
return this.dispatch(...args);
|
|
106
|
+
}
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Dispatch the event and call the first listener that doesn't return null
|
|
111
|
+
*
|
|
112
|
+
* This is useful when you want to get a response from an event listener
|
|
113
|
+
*
|
|
114
|
+
* @param args - Constructor arguments for the event
|
|
115
|
+
* @returns First non-null listener response
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* // Get a response from the first listener
|
|
120
|
+
* const result = UserRegistered.until(user);
|
|
121
|
+
* if (result === false) {
|
|
122
|
+
* // Listener vetoed the operation
|
|
123
|
+
* }
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
static until(...args) {
|
|
127
|
+
const app = Facade_1.Facade.getFacadeApplication();
|
|
128
|
+
if (!app) {
|
|
129
|
+
throw new Error('Application not initialized. Cannot dispatch event.');
|
|
130
|
+
}
|
|
131
|
+
return app.make('events').until(new this(...args));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.Dispatchable = Dispatchable;
|
|
135
|
+
/**
|
|
136
|
+
* Apply Dispatchable mixin to Event class
|
|
137
|
+
*
|
|
138
|
+
* This function copies all static methods from Dispatchable to the target Event class
|
|
139
|
+
*
|
|
140
|
+
* @param eventClass - The Event class to apply the mixin to
|
|
141
|
+
*
|
|
142
|
+
* @internal
|
|
143
|
+
*/
|
|
144
|
+
function applyDispatchable(eventClass) {
|
|
145
|
+
// Get all static methods from Dispatchable
|
|
146
|
+
const staticMethods = Object.getOwnPropertyNames(Dispatchable);
|
|
147
|
+
for (const name of staticMethods) {
|
|
148
|
+
// Skip constructor and prototype
|
|
149
|
+
if (name === 'constructor' || name === 'prototype' || name === 'length' || name === 'name') {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// Get the property descriptor
|
|
153
|
+
const descriptor = Object.getOwnPropertyDescriptor(Dispatchable, name);
|
|
154
|
+
if (descriptor) {
|
|
155
|
+
// Copy the method to the event class
|
|
156
|
+
Object.defineProperty(eventClass, name, {
|
|
157
|
+
value: descriptor.value,
|
|
158
|
+
enumerable: false,
|
|
159
|
+
configurable: true,
|
|
160
|
+
writable: true,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=Dispatchable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatchable.js","sourceRoot":"","sources":["../../../src/Events/Concerns/Dispatchable.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAsIH,8CAuBC;AA1JD,iDAA8C;AAE9C;;;;GAIG;AACH,MAAa,YAAY;IACvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAW;QAC5B,MAAM,GAAG,GAAG,eAAM,CAAC,oBAAoB,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAqB,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAK,IAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,UAAU,CAAC,SAAoC,EAAE,GAAG,IAAW;QACpE,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjF,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,cAAc,CAAC,SAAoC,EAAE,GAAG,IAAW;QACxE,MAAM,iBAAiB,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACzB,MAAM,GAAG,GAAG,eAAM,CAAC,oBAAoB,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAqB,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAK,IAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AA3GD,oCA2GC;AAQD;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAAC,UAAe;IAC/C,2CAA2C;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,iCAAiC;QACjC,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3F,SAAS;QACX,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvE,IAAI,UAAU,EAAE,CAAC;YACf,qCAAqC;YACrC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { Event } from '../Event';
|
|
2
|
+
import type { EventListener, EventSubscriber } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Event Dispatcher Contract
|
|
5
|
+
*
|
|
6
|
+
* Defines the interface for the event dispatcher service.
|
|
7
|
+
* The dispatcher manages event listeners and dispatches events to them.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const dispatcher = app.make<DispatcherContract>('events');
|
|
12
|
+
*
|
|
13
|
+
* // Register a listener
|
|
14
|
+
* dispatcher.listen(UserRegistered, SendWelcomeEmail);
|
|
15
|
+
*
|
|
16
|
+
* // Dispatch an event
|
|
17
|
+
* dispatcher.dispatch(new UserRegistered(user));
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export interface DispatcherContract {
|
|
21
|
+
/**
|
|
22
|
+
* Register an event listener
|
|
23
|
+
*
|
|
24
|
+
* @param events - Event name(s) to listen for
|
|
25
|
+
* @param listener - Listener to invoke when event is dispatched
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Single event
|
|
30
|
+
* dispatcher.listen('user.registered', SendWelcomeEmail);
|
|
31
|
+
*
|
|
32
|
+
* // Multiple events
|
|
33
|
+
* dispatcher.listen(['user.registered', 'user.updated'], LogUserActivity);
|
|
34
|
+
*
|
|
35
|
+
* // Wildcard
|
|
36
|
+
* dispatcher.listen('user.*', LogAllUserEvents);
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
listen(events: string | string[], listener: EventListener): void;
|
|
40
|
+
/**
|
|
41
|
+
* Check if an event has any listeners
|
|
42
|
+
*
|
|
43
|
+
* @param eventName - The event name to check
|
|
44
|
+
* @returns True if the event has listeners
|
|
45
|
+
*/
|
|
46
|
+
hasListeners(eventName: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Register an event subscriber
|
|
49
|
+
*
|
|
50
|
+
* Subscribers can register multiple event listeners at once
|
|
51
|
+
*
|
|
52
|
+
* @param subscriber - The subscriber instance
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* class UserEventSubscriber implements EventSubscriber {
|
|
57
|
+
* subscribe(events: DispatcherContract) {
|
|
58
|
+
* events.listen('user.registered', this.onRegistered.bind(this));
|
|
59
|
+
* events.listen('user.updated', this.onUpdated.bind(this));
|
|
60
|
+
* }
|
|
61
|
+
*
|
|
62
|
+
* onRegistered(event: UserRegistered) { }
|
|
63
|
+
* onUpdated(event: UserUpdated) { }
|
|
64
|
+
* }
|
|
65
|
+
*
|
|
66
|
+
* dispatcher.subscribe(new UserEventSubscriber());
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
subscribe(subscriber: EventSubscriber): void;
|
|
70
|
+
/**
|
|
71
|
+
* Dispatch an event to all listeners
|
|
72
|
+
*
|
|
73
|
+
* @param event - Event name or instance
|
|
74
|
+
* @param payload - Additional arguments to pass to listeners
|
|
75
|
+
* @param halt - Stop dispatching if a listener returns false
|
|
76
|
+
* @returns Array of results from listeners
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* // Dispatch with event instance
|
|
81
|
+
* dispatcher.dispatch(new UserRegistered(user));
|
|
82
|
+
*
|
|
83
|
+
* // Dispatch with event name and payload
|
|
84
|
+
* dispatcher.dispatch('user.registered', [user]);
|
|
85
|
+
*
|
|
86
|
+
* // Halt on first false return
|
|
87
|
+
* dispatcher.dispatch(new OrderProcessing(order), [], true);
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
dispatch(event: string | Event, payload?: any[], halt?: boolean): any[];
|
|
91
|
+
/**
|
|
92
|
+
* Dispatch an event until a listener returns a non-null response
|
|
93
|
+
*
|
|
94
|
+
* This is useful for events where you want the first "truthy" response
|
|
95
|
+
*
|
|
96
|
+
* @param event - Event name or instance
|
|
97
|
+
* @param payload - Additional arguments to pass to listeners
|
|
98
|
+
* @returns The first non-null response from a listener
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* // Get the first validation result
|
|
103
|
+
* const isValid = dispatcher.until(new ValidateOrder(order));
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
until(event: string | Event, payload?: any[]): any;
|
|
107
|
+
/**
|
|
108
|
+
* Queue an event for later dispatch
|
|
109
|
+
*
|
|
110
|
+
* @param event - Event name
|
|
111
|
+
* @param payload - Event payload
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* dispatcher.push('send.notification', [user, message]);
|
|
116
|
+
* // Later...
|
|
117
|
+
* dispatcher.flush('send.notification');
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
push(event: string, payload?: any[]): void;
|
|
121
|
+
/**
|
|
122
|
+
* Flush (dispatch) all queued events for a specific event name
|
|
123
|
+
*
|
|
124
|
+
* @param event - Event name to flush
|
|
125
|
+
*/
|
|
126
|
+
flush(event: string): void;
|
|
127
|
+
/**
|
|
128
|
+
* Remove all listeners for an event
|
|
129
|
+
*
|
|
130
|
+
* @param event - Event name
|
|
131
|
+
*/
|
|
132
|
+
forget(event: string): void;
|
|
133
|
+
/**
|
|
134
|
+
* Clear all queued events
|
|
135
|
+
*/
|
|
136
|
+
forgetPushed(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Get raw listener mappings
|
|
139
|
+
*
|
|
140
|
+
* @returns Map of event names to their listeners
|
|
141
|
+
*/
|
|
142
|
+
getRawListeners(): Map<string, EventListener[]>;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=Dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../../src/Events/Contracts/Dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;OAiBG;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;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAE7C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC;IAExE;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAEnD;;;;;;;;;;;;OAYG;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 @@
|
|
|
1
|
+
{"version":3,"file":"Dispatcher.js","sourceRoot":"","sources":["../../../src/Events/Contracts/Dispatcher.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Should Dispatch After Commit Interface
|
|
3
|
+
*
|
|
4
|
+
* Marker interface for events that should only be dispatched
|
|
5
|
+
* after database transactions have been committed.
|
|
6
|
+
*
|
|
7
|
+
* This ensures that events are only fired if database changes
|
|
8
|
+
* are successfully persisted.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* class UserRegistered extends Event implements ShouldDispatchAfterCommit {
|
|
13
|
+
* constructor(public readonly user: User) {
|
|
14
|
+
* super();
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export interface ShouldDispatchAfterCommit {
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ShouldDispatchAfterCommit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShouldDispatchAfterCommit.d.ts","sourceRoot":"","sources":["../../../src/Events/Contracts/ShouldDispatchAfterCommit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,yBAAyB;CAEzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShouldDispatchAfterCommit.js","sourceRoot":"","sources":["../../../src/Events/Contracts/ShouldDispatchAfterCommit.ts"],"names":[],"mappings":""}
|