@cadenza.io/core 3.4.0 → 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.mjs CHANGED
@@ -46,6 +46,7 @@ var SignalBroker = class _SignalBroker {
46
46
  constructor() {
47
47
  this.debug = false;
48
48
  this.verbose = false;
49
+ // TODO: Signals should be a class with a the observers, registered flag and other data.
49
50
  this.signalObservers = /* @__PURE__ */ new Map();
50
51
  this.emitStacks = /* @__PURE__ */ new Map();
51
52
  this.addSignal("meta.signal_broker.added");
@@ -112,10 +113,22 @@ var SignalBroker = class _SignalBroker {
112
113
  ).doOn("meta.process_signal_queue_requested").emits("meta.signal_broker.queue_empty");
113
114
  this.getSignalsTask = Cadenza.createMetaTask("Get signals", (ctx) => {
114
115
  return {
115
- __signals: Array.from(this.signalObservers.keys()),
116
+ __signals: Array.from(this.signalObservers.entries()).map(
117
+ ([signal, data]) => ({
118
+ signal,
119
+ data: { registered: data.registered }
120
+ })
121
+ ),
116
122
  ...ctx
117
123
  };
118
124
  });
125
+ this.registerSignalTask = Cadenza.createMetaTask(
126
+ "Register signal",
127
+ (ctx) => {
128
+ const { __signalName } = ctx;
129
+ this.signalObservers.get(__signalName).registered = true;
130
+ }
131
+ ).doOn("meta.signal.registered");
119
132
  }
120
133
  /**
121
134
  * Observes a signal with a routine/task.
@@ -155,6 +168,7 @@ var SignalBroker = class _SignalBroker {
155
168
  if (!this.emitStacks.has(execId)) this.emitStacks.set(execId, /* @__PURE__ */ new Map());
156
169
  const stack = this.emitStacks.get(execId);
157
170
  stack.set(signal, context);
171
+ this.addSignal(signal);
158
172
  let executed = false;
159
173
  try {
160
174
  executed = this.execute(signal, context);
@@ -215,7 +229,8 @@ var SignalBroker = class _SignalBroker {
215
229
  this.validateSignalName(_signal);
216
230
  this.signalObservers.set(_signal, {
217
231
  fn: (runner, tasks, context) => runner.run(tasks, context),
218
- tasks: /* @__PURE__ */ new Set()
232
+ tasks: /* @__PURE__ */ new Set(),
233
+ registered: false
219
234
  });
220
235
  const sections = _signal.split(":");
221
236
  if (sections.length === 2) {
@@ -223,7 +238,8 @@ var SignalBroker = class _SignalBroker {
223
238
  if (!this.signalObservers.has(sections[0])) {
224
239
  this.signalObservers.set(_signal, {
225
240
  fn: (runner, tasks, context) => runner.run(tasks, context),
226
- tasks: /* @__PURE__ */ new Set()
241
+ tasks: /* @__PURE__ */ new Set(),
242
+ registered: false
227
243
  });
228
244
  } else {
229
245
  return;
@@ -943,8 +959,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
943
959
  });
944
960
  }
945
961
  }
946
- emitWithMetadata(signal, ctx) {
947
- const data = { ...ctx };
962
+ emitWithMetadata(signal, data) {
948
963
  if (!this.task?.isHidden) {
949
964
  data.__signalEmission = {
950
965
  taskName: this.task.name,
@@ -960,8 +975,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
960
975
  }
961
976
  this.emit(signal, data);
962
977
  }
963
- emitMetricsWithMetadata(signal, ctx) {
964
- const data = { ...ctx };
978
+ emitMetricsWithMetadata(signal, data) {
965
979
  if (!this.task?.isHidden) {
966
980
  data.__signalEmission = {
967
981
  taskName: this.task.name,