@cadenza.io/core 1.9.1 → 1.10.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 +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +57 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57 -44
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -119,16 +119,27 @@ var SignalBroker = class _SignalBroker {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
execute(signal, context) {
|
|
122
|
+
const isMeta = signal.startsWith("meta");
|
|
123
|
+
const emittedAt = Date.now();
|
|
124
|
+
const data = {
|
|
125
|
+
...context,
|
|
126
|
+
__signalEmission: {
|
|
127
|
+
...context.__signalEmission,
|
|
128
|
+
signalName: signal,
|
|
129
|
+
emittedAt,
|
|
130
|
+
isMeta
|
|
131
|
+
}
|
|
132
|
+
};
|
|
122
133
|
let executed;
|
|
123
|
-
executed = this.executeListener(signal,
|
|
134
|
+
executed = this.executeListener(signal, data);
|
|
124
135
|
const parts = signal.slice(0, Math.max(signal.lastIndexOf(":"), signal.lastIndexOf("."))).split(".");
|
|
125
136
|
for (let i = parts.length; i > 0; i--) {
|
|
126
137
|
const parent = parts.slice(0, i).join(".");
|
|
127
|
-
executed = executed || this.executeListener(parent + ".*",
|
|
138
|
+
executed = executed || this.executeListener(parent + ".*", data);
|
|
128
139
|
}
|
|
129
140
|
if (this.debug) {
|
|
130
141
|
console.log(
|
|
131
|
-
`Emitted signal ${signal} with context ${JSON.stringify(
|
|
142
|
+
`Emitted signal ${signal} with context ${JSON.stringify(data)}`,
|
|
132
143
|
executed ? "\u2705" : "\u274C"
|
|
133
144
|
);
|
|
134
145
|
}
|
|
@@ -136,7 +147,8 @@ var SignalBroker = class _SignalBroker {
|
|
|
136
147
|
}
|
|
137
148
|
executeListener(signal, context) {
|
|
138
149
|
const obs = this.signalObservers.get(signal);
|
|
139
|
-
const
|
|
150
|
+
const isMeta = signal.startsWith("meta");
|
|
151
|
+
const runner = isMeta ? this.metaRunner : this.runner;
|
|
140
152
|
if (obs && obs.tasks.size && runner) {
|
|
141
153
|
obs.fn(runner, Array.from(obs.tasks), context);
|
|
142
154
|
return true;
|
|
@@ -144,13 +156,26 @@ var SignalBroker = class _SignalBroker {
|
|
|
144
156
|
return false;
|
|
145
157
|
}
|
|
146
158
|
addSignal(signal) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this.
|
|
159
|
+
let _signal = signal;
|
|
160
|
+
if (!this.signalObservers.has(_signal)) {
|
|
161
|
+
this.validateSignalName(_signal);
|
|
162
|
+
this.signalObservers.set(_signal, {
|
|
150
163
|
fn: (runner, tasks, context) => runner.run(tasks, context),
|
|
151
164
|
tasks: /* @__PURE__ */ new Set()
|
|
152
165
|
});
|
|
153
|
-
|
|
166
|
+
const sections = _signal.split(":");
|
|
167
|
+
if (sections.length === 2) {
|
|
168
|
+
_signal = sections[0];
|
|
169
|
+
if (!this.signalObservers.has(sections[0])) {
|
|
170
|
+
this.signalObservers.set(_signal, {
|
|
171
|
+
fn: (runner, tasks, context) => runner.run(tasks, context),
|
|
172
|
+
tasks: /* @__PURE__ */ new Set()
|
|
173
|
+
});
|
|
174
|
+
} else {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
this.emit("meta.signal_broker.added", { __signalName: _signal });
|
|
154
179
|
}
|
|
155
180
|
}
|
|
156
181
|
// TODO schedule signals
|
|
@@ -703,24 +728,23 @@ var GraphNode = class _GraphNode extends SignalEmitter {
|
|
|
703
728
|
if (shouldSchedule) {
|
|
704
729
|
this.layer = layer;
|
|
705
730
|
layer.add(this);
|
|
706
|
-
|
|
731
|
+
const scheduledAt = Date.now();
|
|
732
|
+
this.emitWithMetadata("meta.node.scheduled", {
|
|
707
733
|
...this.lightExport(),
|
|
708
|
-
__scheduled:
|
|
734
|
+
__scheduled: scheduledAt
|
|
709
735
|
});
|
|
710
736
|
const context = this.context.getFullContext();
|
|
711
|
-
if (context.
|
|
712
|
-
this.
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
relation_type: "listener",
|
|
719
|
-
metadata: {},
|
|
720
|
-
is_meta: false
|
|
737
|
+
if (context.__signalEmission !== void 0 && (!this.isMeta() || this.debug)) {
|
|
738
|
+
this.emitWithMetadata("meta.node.consumed_signal", {
|
|
739
|
+
__signalConsumption: {
|
|
740
|
+
signalName: context.__signalEmission.signalName,
|
|
741
|
+
taskId: this.task.id,
|
|
742
|
+
taskExecutionId: this.id,
|
|
743
|
+
consumedAt: scheduledAt
|
|
721
744
|
}
|
|
722
745
|
});
|
|
723
|
-
context.
|
|
746
|
+
delete context.__signalEmission;
|
|
747
|
+
this.migrate(context);
|
|
724
748
|
}
|
|
725
749
|
}
|
|
726
750
|
}
|
|
@@ -730,12 +754,12 @@ var GraphNode = class _GraphNode extends SignalEmitter {
|
|
|
730
754
|
}
|
|
731
755
|
const memento = this.lightExport();
|
|
732
756
|
if (this.previousNodes.length === 0) {
|
|
733
|
-
this.
|
|
757
|
+
this.emitWithMetadata("meta.node.started_routine_execution", memento);
|
|
734
758
|
}
|
|
735
759
|
if (this.debug) {
|
|
736
760
|
this.log();
|
|
737
761
|
}
|
|
738
|
-
this.
|
|
762
|
+
this.emitWithMetadata("meta.node.started", memento);
|
|
739
763
|
return this.executionStart;
|
|
740
764
|
}
|
|
741
765
|
end() {
|
|
@@ -747,11 +771,11 @@ var GraphNode = class _GraphNode extends SignalEmitter {
|
|
|
747
771
|
this.executionTime = end - this.executionStart;
|
|
748
772
|
const memento = this.lightExport();
|
|
749
773
|
if (this.errored || this.failed) {
|
|
750
|
-
this.
|
|
774
|
+
this.emitWithMetadata("meta.node.errored", memento);
|
|
751
775
|
}
|
|
752
|
-
this.
|
|
776
|
+
this.emitWithMetadata("meta.node.ended", memento);
|
|
753
777
|
if (this.graphDone()) {
|
|
754
|
-
this.
|
|
778
|
+
this.emitWithMetadata(
|
|
755
779
|
`meta.node.ended_routine_execution:${this.routineExecId}`,
|
|
756
780
|
memento
|
|
757
781
|
);
|
|
@@ -814,30 +838,19 @@ var GraphNode = class _GraphNode extends SignalEmitter {
|
|
|
814
838
|
});
|
|
815
839
|
}
|
|
816
840
|
}
|
|
817
|
-
emitWithMetadata(signal,
|
|
841
|
+
emitWithMetadata(signal, ctx) {
|
|
818
842
|
this.emit(signal, {
|
|
819
|
-
...
|
|
820
|
-
|
|
821
|
-
|
|
843
|
+
...ctx,
|
|
844
|
+
__signalEmission: {
|
|
845
|
+
taskId: this.task.id,
|
|
846
|
+
taskExecutionId: this.id
|
|
847
|
+
}
|
|
822
848
|
});
|
|
823
|
-
if (!signal.includes(".meta")) {
|
|
824
|
-
this.emit("meta.node.emitted_signal", {
|
|
825
|
-
__signal_log: {
|
|
826
|
-
signal_name: signal,
|
|
827
|
-
log_type: "emit",
|
|
828
|
-
emitted_by_task_id: this.task.id,
|
|
829
|
-
task_execution_id: this.id,
|
|
830
|
-
relation_type: "emitter",
|
|
831
|
-
metadata: {},
|
|
832
|
-
is_meta: false
|
|
833
|
-
}
|
|
834
|
-
});
|
|
835
|
-
}
|
|
836
849
|
}
|
|
837
850
|
onProgress(progress) {
|
|
838
851
|
var _a, _b, _c;
|
|
839
852
|
progress = Math.min(Math.max(0, progress), 1);
|
|
840
|
-
this.
|
|
853
|
+
this.emitWithMetadata(`meta.node.progress:${this.routineExecId}`, {
|
|
841
854
|
__nodeId: this.id,
|
|
842
855
|
__routineExecId: this.routineExecId,
|
|
843
856
|
__progress: progress,
|