@holo-js/events 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +8 -2
- package/dist/index.mjs +22 -0
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { QueueJobDefinition, QueueJsonValue } from '@holo-js/queue';
|
|
2
2
|
|
|
3
3
|
type EventDelayValue = number | Date;
|
|
4
|
+
type EventDefinitionDispatcher = <TPayload>(event: EventDefinition<TPayload, string | undefined>, payload: TPayload) => EventPendingDispatch<TPayload>;
|
|
5
|
+
declare function setEventDefinitionDispatcher(dispatcher: EventDefinitionDispatcher): void;
|
|
4
6
|
declare function normalizeOptionalString(value: unknown, label: string): string | undefined;
|
|
5
7
|
declare function normalizeOptionalBoolean(value: boolean | undefined, label: string): boolean | undefined;
|
|
6
8
|
declare function normalizeOptionalDelay(value: EventDelayValue | undefined): EventDelayValue | undefined;
|
|
@@ -14,6 +16,9 @@ interface EventDefinition<TPayload = unknown, TName extends string | undefined =
|
|
|
14
16
|
readonly name?: TName;
|
|
15
17
|
readonly __payloadType?: TPayload;
|
|
16
18
|
}
|
|
19
|
+
interface DefinedEventDefinition<TPayload = unknown, TName extends string | undefined = string | undefined> extends EventDefinition<TPayload, TName> {
|
|
20
|
+
dispatch(payload: TPayload): EventPendingDispatch<TPayload>;
|
|
21
|
+
}
|
|
17
22
|
interface RegisteredEvent<TPayload = unknown, TName extends string = string> {
|
|
18
23
|
readonly name: TName;
|
|
19
24
|
readonly sourcePath?: string;
|
|
@@ -108,7 +113,7 @@ interface EventFacade {
|
|
|
108
113
|
}
|
|
109
114
|
declare function isEventDefinition(value: unknown): value is EventDefinition;
|
|
110
115
|
declare function normalizeEventDefinition<TEvent extends EventDefinition>(event: TEvent): TEvent;
|
|
111
|
-
declare function defineEvent<TPayload, TName extends string | undefined = string | undefined>(event: EventDefinition<TPayload, TName>):
|
|
116
|
+
declare function defineEvent<TPayload, TName extends string | undefined = string | undefined>(event: EventDefinition<TPayload, TName>): DefinedEventDefinition<TPayload, TName>;
|
|
112
117
|
declare function normalizeListensTo<TInput extends EventReferenceInput>(input: TInput): NormalizeEventReferenceInput<TInput>;
|
|
113
118
|
declare function isListenerDefinition(value: unknown): value is ListenerDefinition;
|
|
114
119
|
declare function normalizeListenerDefinition<TInput extends EventReferenceInput, TResult>(listener: ListenerDefinitionInput<TInput, TResult>): ListenerDefinition<TInput, TResult>;
|
|
@@ -123,6 +128,7 @@ declare const eventInternals: {
|
|
|
123
128
|
normalizeOptionalBoolean: typeof normalizeOptionalBoolean;
|
|
124
129
|
normalizeOptionalDelay: typeof normalizeOptionalDelay;
|
|
125
130
|
normalizeOptionalString: typeof normalizeOptionalString;
|
|
131
|
+
setEventDefinitionDispatcher: typeof setEventDefinitionDispatcher;
|
|
126
132
|
normalizeListensTo: typeof normalizeListensTo;
|
|
127
133
|
normalizeListenerDefinition: typeof normalizeListenerDefinition;
|
|
128
134
|
toPosixPath: typeof toPosixPath;
|
|
@@ -286,4 +292,4 @@ declare const eventRuntimeInternals: {
|
|
|
286
292
|
validateQueuedEventPayload: typeof validateQueuedEventPayload;
|
|
287
293
|
};
|
|
288
294
|
|
|
289
|
-
export { EVENTS_INVOKE_LISTENER_JOB, Event, type EventDeferredDispatchContext, type EventDefinition, type EventDelayValue, type EventDispatchResult, type EventEnvelope, type EventEnvelopeFor, type EventFacade, type EventPayloadFor, type EventPendingDispatch, type EventQueuedListenerDispatch, type EventReference, type EventReferenceInput, type EventRuntimeBinding, type EventRuntimeHooks, type EventsInvokeListenerPayload, type ExportedEventDefinition, type HoloEventRegistry, type HoloListenerRegistry, type ListenerDefinition, type ListenerDefinitionInput, type ListenerHandledEvent, type RegisterEventOptions, type RegisterListenerOptions, type RegisteredEvent, type RegisteredListener, configureEventsRuntime, deferEventDispatchToDatabaseCommit, defineEvent, defineListener, dispatchEvent, ensureEventsQueueJobRegistered, ensureEventsQueueJobRegisteredAsync, eventInternals, eventQueueInternals, eventRegistryInternals, eventRuntimeInternals, getEventsRuntime, getRegisteredEvent, getRegisteredListener, isEventDefinition, isListenerDefinition, listRegisteredEvents, listRegisteredListeners, listRegisteredListenersForEvent, normalizeEventDefinition, normalizeListenerDefinition, registerEvent, registerEvents, registerListener, registerListeners, resetEventRegistry, resetEventsRegistry, resetEventsRuntime, resetListenerRegistry, runQueuedListenerInvocation, unregisterEvent, unregisterListener };
|
|
295
|
+
export { type DefinedEventDefinition, EVENTS_INVOKE_LISTENER_JOB, Event, type EventDeferredDispatchContext, type EventDefinition, type EventDelayValue, type EventDispatchResult, type EventEnvelope, type EventEnvelopeFor, type EventFacade, type EventPayloadFor, type EventPendingDispatch, type EventQueuedListenerDispatch, type EventReference, type EventReferenceInput, type EventRuntimeBinding, type EventRuntimeHooks, type EventsInvokeListenerPayload, type ExportedEventDefinition, type HoloEventRegistry, type HoloListenerRegistry, type ListenerDefinition, type ListenerDefinitionInput, type ListenerHandledEvent, type RegisterEventOptions, type RegisterListenerOptions, type RegisteredEvent, type RegisteredListener, configureEventsRuntime, deferEventDispatchToDatabaseCommit, defineEvent, defineListener, dispatchEvent, ensureEventsQueueJobRegistered, ensureEventsQueueJobRegisteredAsync, eventInternals, eventQueueInternals, eventRegistryInternals, eventRuntimeInternals, getEventsRuntime, getRegisteredEvent, getRegisteredListener, isEventDefinition, isListenerDefinition, listRegisteredEvents, listRegisteredListeners, listRegisteredListenersForEvent, normalizeEventDefinition, normalizeListenerDefinition, registerEvent, registerEvents, registerListener, registerListeners, resetEventRegistry, resetEventsRegistry, resetEventsRuntime, resetListenerRegistry, runQueuedListenerInvocation, unregisterEvent, unregisterListener };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
// src/contracts.ts
|
|
2
2
|
var HOLO_EVENT_DEFINITION_MARKER = /* @__PURE__ */ Symbol.for("holo-js.events.definition");
|
|
3
3
|
var HOLO_LISTENER_DEFINITION_MARKER = /* @__PURE__ */ Symbol.for("holo-js.events.listener");
|
|
4
|
+
function getEventDefinitionDispatcher() {
|
|
5
|
+
return globalThis.__holoEventDefinitionDispatcher__;
|
|
6
|
+
}
|
|
7
|
+
function setEventDefinitionDispatcher(dispatcher) {
|
|
8
|
+
const runtime = globalThis;
|
|
9
|
+
runtime.__holoEventDefinitionDispatcher__ = dispatcher;
|
|
10
|
+
}
|
|
11
|
+
function dispatchDefinedEvent(event, payload) {
|
|
12
|
+
const dispatcher = getEventDefinitionDispatcher();
|
|
13
|
+
if (!dispatcher) {
|
|
14
|
+
throw new Error("[Holo Events] Event definitions cannot dispatch before the events runtime is loaded.");
|
|
15
|
+
}
|
|
16
|
+
return dispatcher(event, payload);
|
|
17
|
+
}
|
|
4
18
|
function normalizeOptionalString(value, label) {
|
|
5
19
|
if (typeof value === "undefined") {
|
|
6
20
|
return void 0;
|
|
@@ -85,6 +99,12 @@ function defineEvent(event) {
|
|
|
85
99
|
value: true,
|
|
86
100
|
enumerable: false
|
|
87
101
|
});
|
|
102
|
+
Object.defineProperty(normalized, "dispatch", {
|
|
103
|
+
value(payload) {
|
|
104
|
+
return dispatchDefinedEvent(normalized, payload);
|
|
105
|
+
},
|
|
106
|
+
enumerable: false
|
|
107
|
+
});
|
|
88
108
|
return Object.freeze(normalized);
|
|
89
109
|
}
|
|
90
110
|
function normalizeEventReference(value, index) {
|
|
@@ -157,6 +177,7 @@ var eventInternals = {
|
|
|
157
177
|
normalizeOptionalBoolean,
|
|
158
178
|
normalizeOptionalDelay,
|
|
159
179
|
normalizeOptionalString,
|
|
180
|
+
setEventDefinitionDispatcher,
|
|
160
181
|
normalizeListensTo,
|
|
161
182
|
normalizeListenerDefinition,
|
|
162
183
|
toPosixPath
|
|
@@ -788,6 +809,7 @@ function resetEventsRuntime() {
|
|
|
788
809
|
function dispatchEvent(event, payload) {
|
|
789
810
|
return new PendingEventDispatch(event, payload);
|
|
790
811
|
}
|
|
812
|
+
eventInternals.setEventDefinitionDispatcher(dispatchEvent);
|
|
791
813
|
var Event = {
|
|
792
814
|
dispatch: dispatchEvent
|
|
793
815
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@holo-js/events",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Holo-JS Framework - event contracts and runtime surface",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"test": "vitest --run"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@holo-js/db": "^0.2.
|
|
26
|
+
"@holo-js/db": "^0.2.5"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@holo-js/queue": "^0.2.
|
|
29
|
+
"@holo-js/queue": "^0.2.5"
|
|
30
30
|
},
|
|
31
31
|
"peerDependenciesMeta": {
|
|
32
32
|
"@holo-js/queue": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@holo-js/queue": "^0.2.
|
|
37
|
+
"@holo-js/queue": "^0.2.5",
|
|
38
38
|
"@types/node": "^22.10.2",
|
|
39
39
|
"tsup": "^8.3.5",
|
|
40
40
|
"typescript": "^5.7.2",
|