@holo-js/events 0.2.3 → 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 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>): 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",
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.3"
26
+ "@holo-js/db": "^0.2.5"
27
27
  },
28
28
  "peerDependencies": {
29
- "@holo-js/queue": "^0.2.3"
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.3",
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",