@moonset/executor
Version:
The Moonset Executor
109 lines • 11.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TaskNode = exports.OutputNode = exports.InputNode = exports.JobNode = exports.RootNode = exports.Node = exports.SimpleVisitor = exports.Visitor = void 0;
class Visitor {
visitRoot(root, context) {
return this.visit(root, context);
}
visitJob(job, context) {
return this.visit(job, context);
}
visitInput(input, context) {
return this.visit(input, context);
}
visitOutput(output, context) {
return this.visit(output, context);
}
visitTask(task, context) {
return this.visit(task, context);
}
}
exports.Visitor = Visitor;
class SimpleVisitor extends Visitor {
visit(node, context) {
for (const child of node.getChildren()) {
child.accept(this, context);
}
}
}
exports.SimpleVisitor = SimpleVisitor;
class Node {
accept(visitor, context) {
return visitor.visit(this, context);
}
}
exports.Node = Node;
class RootNode extends Node {
constructor(properties) {
super();
this.jobs = properties;
this.nodes = this.jobs.map((x) => new JobNode(x));
}
accept(visitor, context) {
return visitor.visitRoot(this, context);
}
getChildren() {
return this.nodes;
}
}
exports.RootNode = RootNode;
class JobNode extends Node {
constructor(properties) {
super();
this.job = properties;
this.inputs =
this.job.input ? this.job.input.map((x) => new InputNode(x)) : [];
this.outputs =
this.job.output ? this.job.output.map((x) => new OutputNode(x)) : [];
this.tasks =
this.job.task ? this.job.task.map((x) => new TaskNode(x)) : [];
}
accept(visitor, context) {
return visitor.visitJob(this, context);
}
getChildren() {
const array = [];
return array.concat(this.inputs, this.tasks, this.outputs);
}
}
exports.JobNode = JobNode;
class InputNode extends Node {
constructor(properties) {
super();
this.dataset = properties;
}
accept(visitor, context) {
return visitor.visitInput(this, context);
}
getChildren() {
return [];
}
}
exports.InputNode = InputNode;
class OutputNode extends Node {
constructor(properties) {
super();
this.dataset = properties;
}
accept(visitor, context) {
return visitor.visitOutput(this, context);
}
getChildren() {
return [];
}
}
exports.OutputNode = OutputNode;
class TaskNode extends Node {
constructor(properties) {
super();
this.task = properties;
}
accept(visitor, context) {
return visitor.visitTask(this, context);
}
getChildren() {
return [];
}
}
exports.TaskNode = TaskNode;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBc0IsT0FBTztJQUd6QixTQUFTLENBQUMsSUFBYyxFQUFFLE9BQVU7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQVksRUFBRSxPQUFVO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFnQixFQUFFLE9BQVU7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLE1BQWtCLEVBQUUsT0FBVTtRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBYyxFQUFFLE9BQVU7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFsQkQsMEJBa0JDO0FBRUQsTUFBYSxhQUFpQixTQUFRLE9BQWdCO0lBQ3BELEtBQUssQ0FBQyxJQUFVLEVBQUUsT0FBVTtRQUMxQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7Q0FDRjtBQU5ELHNDQU1DO0FBRUQsTUFBc0IsSUFBSTtJQUN4QixNQUFNLENBQU8sT0FBc0IsRUFBRSxPQUFVO1FBQzdDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVB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QyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFdBQVc7UUFDVCxPQUFlLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFmRCxnQ0FlQztBQUVELE1BQWEsUUFBUyxTQUFRLElBQUk7SUFHOUIsWUFBWSxVQUF1QjtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUUsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQU8sT0FBc0IsRUFBRSxPQUFVO1FBQzdDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFlLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFmRCw0QkFlQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuaW1wb3J0ICogYXMgbW9kZWwgZnJvbSAnQG1vb25zZXQvbW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlzaXRvcjxSLCBDPiB7XG4gICAgYWJzdHJhY3QgdmlzaXQobm9kZTogTm9kZSwgY29udGV4dDogQyk6IFI7XG5cbiAgICB2aXNpdFJvb3Qocm9vdDogUm9vdE5vZGUsIGNvbnRleHQ6IEMpOiBSIHtcbiAgICAgIHJldHVybiB0aGlzLnZpc2l0KHJvb3QsIGNvbnRleHQpO1xuICAgIH1cbiAgICB2aXNpdEpvYihqb2I6IEpvYk5vZGUsIGNvbnRleHQ6IEMpOiBSIHtcbiAgICAgIHJldHVybiB0aGlzLnZpc2l0KGpvYiwgY29udGV4dCk7XG4gICAgfVxuICAgIHZpc2l0SW5wdXQoaW5wdXQ6IElucHV0Tm9kZSwgY29udGV4dDogQyk6IFIge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXQoaW5wdXQsIGNvbnRleHQpO1xuICAgIH1cbiAgICB2aXNpdE91dHB1dChvdXRwdXQ6IE91dHB1dE5vZGUsIGNvbnRleHQ6IEMpOiBSIHtcbiAgICAgIHJldHVybiB0aGlzLnZpc2l0KG91dHB1dCwgY29udGV4dCk7XG4gICAgfVxuICAgIHZpc2l0VGFzayh0YXNrOiBUYXNrTm9kZSwgY29udGV4dDogQyk6IFIge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXQodGFzaywgY29udGV4dCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlVmlzaXRvcjxDPiBleHRlbmRzIFZpc2l0b3I8dm9pZCwgQz4ge1xuICB2aXNpdChub2RlOiBOb2RlLCBjb250ZXh0OiBDKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmdldENoaWxkcmVuKCkpIHtcbiAgICAgIGNoaWxkLmFjY2VwdCh0aGlzLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5vZGUge1xuICBhY2NlcHQ8UiwgQz4odmlzaXRvcjogVmlzaXRvcjxSLCBDPiwgY29udGV4dDogQyk6IFIge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0KHRoaXMsIGNvbnRleHQpO1xuICB9XG5cbiAgICBhYnN0cmFjdCBnZXRDaGlsZHJlbigpOiBOb2RlW107XG59XG5cblxuZXhwb3J0IGNsYXNzIFJvb3ROb2RlIGV4dGVuZHMgTm9kZSB7XG4gICAgam9iczogbW9kZWwuSUpvYltdO1xuXG4gICAgbm9kZXM6IE5vZGVbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IG1vZGVsLklKb2JbXSkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXMuam9icyA9IHByb3BlcnRpZXM7XG4gICAgICB0aGlzLm5vZGVzID0gdGhpcy5qb2JzLm1hcCgoeCkgPT4gbmV3IEpvYk5vZGUoeCkpO1xuICAgIH1cblxuICAgIGFjY2VwdDxSLCBDPih2aXNpdG9yOiBWaXNpdG9yPFIsIEM+LCBjb250ZXh0OiBDKTogUiB7XG4gICAgICByZXR1cm4gdmlzaXRvci52aXNpdFJvb3QodGhpcywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRyZW4oKTogTm9kZVtdIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGVzO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBKb2JOb2RlIGV4dGVuZHMgTm9kZSB7XG4gICAgam9iOiBtb2RlbC5JSm9iO1xuXG4gICAgaW5wdXRzOiBOb2RlW107XG4gICAgb3V0cHV0czogTm9kZVtdO1xuICAgIHRhc2tzOiBOb2RlW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBtb2RlbC5JSm9iKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5qb2IgPSBwcm9wZXJ0aWVzO1xuICAgICAgdGhpcy5pbnB1dHMgPVxuICAgICAgICB0aGlzLmpvYi5pbnB1dCA/IHRoaXMuam9iLmlucHV0Lm1hcCgoeCkgPT4gbmV3IElucHV0Tm9kZSh4KSkgOiBbXTtcbiAgICAgIHRoaXMub3V0cHV0cyA9XG4gICAgICAgIHRoaXMuam9iLm91dHB1dCA/IHRoaXMuam9iLm91dHB1dC5tYXAoKHgpID0+IG5ldyBPdXRwdXROb2RlKHgpKSA6IFtdO1xuICAgICAgdGhpcy50YXNrcyA9XG4gICAgICAgIHRoaXMuam9iLnRhc2sgPyB0aGlzLmpvYi50YXNrLm1hcCgoeCkgPT4gbmV3IFRhc2tOb2RlKHgpKSA6IFtdO1xuICAgIH1cblxuICAgIGFjY2VwdDxSLCBDPih2aXNpdG9yOiBWaXNpdG9yPFIsIEM+LCBjb250ZXh0OiBDKTogUiB7XG4gICAgICByZXR1cm4gdmlzaXRvci52aXNpdEpvYih0aGlzLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBnZXRDaGlsZHJlbigpOiBOb2RlW10ge1xuICAgICAgY29uc3QgYXJyYXk6IE5vZGVbXSA9IFtdO1xuICAgICAgcmV0dXJuIGFycmF5LmNvbmNhdCh0aGlzLmlucHV0cywgdGhpcy50YXNrcywgdGhpcy5vdXRwdXRzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnB1dE5vZGUgZXh0ZW5kcyBOb2RlIHtcbiAgICBkYXRhc2V0OiBtb2RlbC5JRGF0YVNldDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IG1vZGVsLklEYXRhU2V0KSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5kYXRhc2V0ID0gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICBhY2NlcHQ8UiwgQz4odmlzaXRvcjogVmlzaXRvcjxSLCBDPiwgY29udGV4dDogQyk6IFIge1xuICAgICAgcmV0dXJuIHZpc2l0b3IudmlzaXRJbnB1dCh0aGlzLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBnZXRDaGlsZHJlbigpOiBOb2RlW10ge1xuICAgICAgcmV0dXJuIDxOb2RlW10+W107XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3V0cHV0Tm9kZSBleHRlbmRzIE5vZGUge1xuICAgIGRhdGFzZXQ6IG1vZGVsLklEYXRhU2V0O1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydGllczogbW9kZWwuSURhdGFTZXQpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmRhdGFzZXQgPSBwcm9wZXJ0aWVzO1xuICAgIH1cblxuXG4gICAgYWNjZXB0PFIsIEM+KHZpc2l0b3I6IFZpc2l0b3I8UiwgQz4sIGNvbnRleHQ6IEMpOiBSIHtcbiAgICAgIHJldHVybiB2aXNpdG9yLnZpc2l0T3V0cHV0KHRoaXMsIGNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRDaGlsZHJlbigpOiBOb2RlW10ge1xuICAgICAgcmV0dXJuIDxOb2RlW10+W107XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGFza05vZGUgZXh0ZW5kcyBOb2RlIHtcbiAgICB0YXNrOiBtb2RlbC5JVGFzaztcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IG1vZGVsLklUYXNrKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy50YXNrPSBwcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGFjY2VwdDxSLCBDPih2aXNpdG9yOiBWaXNpdG9yPFIsIEM+LCBjb250ZXh0OiBDKTogUiB7XG4gICAgICByZXR1cm4gdmlzaXRvci52aXNpdFRhc2sodGhpcywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRyZW4oKTogTm9kZVtdIHtcbiAgICAgIHJldHVybiA8Tm9kZVtdPltdO1xuICAgIH1cbn1cbiJdfQ==