@cadenza.io/core 3.4.1 → 3.5.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/dist/index.d.mts CHANGED
@@ -229,8 +229,8 @@ declare class GraphNode extends SignalEmitter implements Graph {
229
229
  workAsync(): Promise<void>;
230
230
  executeAsync(): Promise<GraphNode[]>;
231
231
  work(): TaskResult | Promise<TaskResult>;
232
- emitWithMetadata(signal: string, ctx: AnyObject): void;
233
- emitMetricsWithMetadata(signal: string, ctx: AnyObject): void;
232
+ emitWithMetadata(signal: string, data: AnyObject): void;
233
+ emitMetricsWithMetadata(signal: string, data: AnyObject): void;
234
234
  onProgress(progress: number): void;
235
235
  postProcess(): GraphNode[] | Promise<GraphNode[]>;
236
236
  postProcessAsync(nextNodes: Promise<GraphNode[]>): Promise<GraphNode[]>;
@@ -673,6 +673,7 @@ declare class SignalBroker {
673
673
  metaRunner: GraphRunner | undefined;
674
674
  clearSignalsTask: Task | undefined;
675
675
  getSignalsTask: Task | undefined;
676
+ registerSignalTask: Task | undefined;
676
677
  signalObservers: Map<string, {
677
678
  fn: (runner: GraphRunner, tasks: (Task | GraphRoutine)[], context: AnyObject) => void;
678
679
  tasks: Set<Task | GraphRoutine>;
package/dist/index.d.ts CHANGED
@@ -229,8 +229,8 @@ declare class GraphNode extends SignalEmitter implements Graph {
229
229
  workAsync(): Promise<void>;
230
230
  executeAsync(): Promise<GraphNode[]>;
231
231
  work(): TaskResult | Promise<TaskResult>;
232
- emitWithMetadata(signal: string, ctx: AnyObject): void;
233
- emitMetricsWithMetadata(signal: string, ctx: AnyObject): void;
232
+ emitWithMetadata(signal: string, data: AnyObject): void;
233
+ emitMetricsWithMetadata(signal: string, data: AnyObject): void;
234
234
  onProgress(progress: number): void;
235
235
  postProcess(): GraphNode[] | Promise<GraphNode[]>;
236
236
  postProcessAsync(nextNodes: Promise<GraphNode[]>): Promise<GraphNode[]>;
@@ -673,6 +673,7 @@ declare class SignalBroker {
673
673
  metaRunner: GraphRunner | undefined;
674
674
  clearSignalsTask: Task | undefined;
675
675
  getSignalsTask: Task | undefined;
676
+ registerSignalTask: Task | undefined;
676
677
  signalObservers: Map<string, {
677
678
  fn: (runner: GraphRunner, tasks: (Task | GraphRoutine)[], context: AnyObject) => void;
678
679
  tasks: Set<Task | GraphRoutine>;
package/dist/index.js CHANGED
@@ -83,6 +83,7 @@ var SignalBroker = class _SignalBroker {
83
83
  constructor() {
84
84
  this.debug = false;
85
85
  this.verbose = false;
86
+ // TODO: Signals should be a class with a the observers, registered flag and other data.
86
87
  this.signalObservers = /* @__PURE__ */ new Map();
87
88
  this.emitStacks = /* @__PURE__ */ new Map();
88
89
  this.addSignal("meta.signal_broker.added");
@@ -150,11 +151,21 @@ var SignalBroker = class _SignalBroker {
150
151
  this.getSignalsTask = Cadenza.createMetaTask("Get signals", (ctx) => {
151
152
  return {
152
153
  __signals: Array.from(this.signalObservers.entries()).map(
153
- ([signal, data]) => ({ signal, data })
154
+ ([signal, data]) => ({
155
+ signal,
156
+ data: { registered: data.registered }
157
+ })
154
158
  ),
155
159
  ...ctx
156
160
  };
157
161
  });
162
+ this.registerSignalTask = Cadenza.createMetaTask(
163
+ "Register signal",
164
+ (ctx) => {
165
+ const { __signalName } = ctx;
166
+ this.signalObservers.get(__signalName).registered = true;
167
+ }
168
+ ).doOn("meta.signal.registered");
158
169
  }
159
170
  /**
160
171
  * Observes a signal with a routine/task.
@@ -194,6 +205,7 @@ var SignalBroker = class _SignalBroker {
194
205
  if (!this.emitStacks.has(execId)) this.emitStacks.set(execId, /* @__PURE__ */ new Map());
195
206
  const stack = this.emitStacks.get(execId);
196
207
  stack.set(signal, context);
208
+ this.addSignal(signal);
197
209
  let executed = false;
198
210
  try {
199
211
  executed = this.execute(signal, context);
@@ -984,8 +996,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
984
996
  });
985
997
  }
986
998
  }
987
- emitWithMetadata(signal, ctx) {
988
- const data = { ...ctx };
999
+ emitWithMetadata(signal, data) {
989
1000
  if (!this.task?.isHidden) {
990
1001
  data.__signalEmission = {
991
1002
  taskName: this.task.name,
@@ -1001,8 +1012,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1001
1012
  }
1002
1013
  this.emit(signal, data);
1003
1014
  }
1004
- emitMetricsWithMetadata(signal, ctx) {
1005
- const data = { ...ctx };
1015
+ emitMetricsWithMetadata(signal, data) {
1006
1016
  if (!this.task?.isHidden) {
1007
1017
  data.__signalEmission = {
1008
1018
  taskName: this.task.name,