UNPKG

@moonset/executor

Version:
109 lines 11.4 kB
"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==