@moonset/executor
Version:
The Moonset Executor
62 lines • 9.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RunVisitor = void 0;
const vi = require("./visitor");
const plugin_1 = require("./plugin");
function getType(dataset) {
const keys = Object.keys(dataset);
if (keys.length != 1) {
throw Error(`Invalid input. The object should contain only one key. But the keys are ${keys}`);
}
return keys[0];
}
class RunVisitor extends vi.SimpleVisitor {
visitJob(node, m) {
if (!node.job.platform || !node.job.platform.type) {
this.platform = 'emr';
}
else {
this.platform = node.job.platform.type;
}
if (!node.job.platform || !node.job.platform.settings) {
this.settings = {};
}
else {
this.settings = node.job.platform.settings;
}
plugin_1.PluginHost.instance.platform = this.platform;
plugin_1.PluginHost.instance.settings = this.settings;
m.cdk.push({ op: `platform.${this.platform}.init`, args: [] });
const dataTypes = new Set();
node.inputs.forEach((x) => {
dataTypes.add(getType(x.dataset));
});
node.outputs.forEach((x) => {
dataTypes.add(getType(x.dataset));
});
dataTypes.forEach((type) => {
m.cdk.push({ op: `data.${type}.init`, args: [this.platform] });
});
node.outputs.map((x) => this.prepareOutput(x, m));
this.visit(node, m);
m.sdk.push({ op: `platform.${this.platform}.run`, args: [] });
}
prepareOutput(node, m) {
const type = getType(node.dataset);
m.sdk.push({ op: `data.${type}.import`, args: [this.platform, node.dataset] });
}
visitInput(node, m) {
const type = getType(node.dataset);
m.sdk.push({ op: `data.${type}.import`, args: [this.platform, node.dataset] });
}
visitOutput(node, m) {
const type = getType(node.dataset);
m.sdk.push({ op: `data.${type}.export`, args: [this.platform, node.dataset] });
}
visitTask(node, m) {
const type = getType(node.task);
m.sdk.push({ op: `platform.${this.platform}.task`, args: [type, node.task] });
}
}
exports.RunVisitor = RunVisitor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnQ0FBZ0M7QUFDaEMscUNBQW9DO0FBd0JwQyxTQUFTLE9BQU8sQ0FBQyxPQUFZO0lBQ3pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsSUFBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNqQixNQUFNLEtBQUssQ0FBQywyRUFBMkUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNsRztJQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFFSCxNQUFhLFVBQVcsU0FBUSxFQUFFLENBQUMsYUFBaUI7SUFNbEQsUUFBUSxDQUFDLElBQWdCLEVBQUUsQ0FBSztRQUM5QixJQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDekI7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQzFDO1FBRUQsSUFBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUUsRUFBRSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztTQUMvQztRQUNELG1CQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdDLG1CQUFVLENBQUMsUUFB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RSxZQUFZLElBQUksQ0FBQyxRQUFRLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0Y7QUE5REQsZ0NBOERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdmkgZnJvbSAnLi92aXNpdG9yJztcbmltcG9ydCB7UGx1Z2luSG9zdH0gZnJvbSAnLi9wbHVnaW4nO1xuXG4vKipcbiAqIFRoZSBob29rIGZ1bmN0aW9uIGZvciB0aGUgcGx1Z2luIHRvIGludGVncmF0ZSBpbnRvLlxuICogSGVyZSBpcyBhIHNhbXBsZSBjb2RlIHRvIGludm9rZSB0aGlzIGhvb2sgZnVuY3Rpb24uXG4gKiAgIGNvbnN0IGZuID0gUGx1Z2luSG9zdC5pbnN0YW5jZS5ob29rc1tjb21tYW5kLm9wXTtcbiAqICAgYXdhaXQgZm4oUGx1Z2luSG9zdC5pbnN0YW5jZSwgLi4uY29tbWFuZC5hcmdzKTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaWNyb0NvbW1hbmQge1xuICAgIHJlYWRvbmx5IG9wOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXJnczogYW55W107XG59XG4vKipcbiAqIFRoZSBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gb2YgTW9vbnNldCBFeGVjdXRvci5cbiAqXG4gKiBJdCBjb250YWlucyBhbiBhcnJheSBvZiBDREsgY29tbWFuZHMgYW5kIFNESyBjb21tYW5kcy4gQ0RLIGNvbW1hbmRzIGFyZSBcbiAqIHN5bmNocm9ub3VzIGFuZCBTREsgY29tbWFuZHMgYXJlIGFzeW5jaHJvbm91cy4gQ0RLIGNvbW1hbmRzIGFyZSBleGVjdXRlZCBhbmRcbiAqIGRlcGxveWVkIGJlZm9yZSBTREsgY29tbWFuZHMgZXhlY3V0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUiB7XG4gICAgcmVhZG9ubHkgY2RrOiBNaWNyb0NvbW1hbmRbXTtcbiAgICByZWFkb25seSBzZGs6IE1pY3JvQ29tbWFuZFtdO1xufVxuXG5mdW5jdGlvbiBnZXRUeXBlKGRhdGFzZXQ6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGRhdGFzZXQpO1xuICAgIGlmKGtleXMubGVuZ3RoICE9IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgaW5wdXQuIFRoZSBvYmplY3Qgc2hvdWxkIGNvbnRhaW4gb25seSBvbmUga2V5LiBCdXQgdGhlIGtleXMgYXJlICR7a2V5c31gKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXNbMF07XG4gIH1cblxuZXhwb3J0IGNsYXNzIFJ1blZpc2l0b3IgZXh0ZW5kcyB2aS5TaW1wbGVWaXNpdG9yPElSPiB7XG5cbiAgcGxhdGZvcm06IHN0cmluZztcblxuICBzZXR0aW5nczogYW55O1xuXG4gIHZpc2l0Sm9iKG5vZGU6IHZpLkpvYk5vZGUsIG06IElSKSB7XG4gICAgaWYoIW5vZGUuam9iLnBsYXRmb3JtIHx8ICFub2RlLmpvYi5wbGF0Zm9ybS50eXBlKSB7XG4gICAgICAgIHRoaXMucGxhdGZvcm0gPSAnZW1yJztcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBsYXRmb3JtID0gbm9kZS5qb2IucGxhdGZvcm0udHlwZTtcbiAgICB9XG5cbiAgICBpZighbm9kZS5qb2IucGxhdGZvcm0gfHwgIW5vZGUuam9iLnBsYXRmb3JtLnNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3M9IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgID0gbm9kZS5qb2IucGxhdGZvcm0uc2V0dGluZ3M7XG4gICAgfVxuICAgIFBsdWdpbkhvc3QuaW5zdGFuY2UucGxhdGZvcm0gPSB0aGlzLnBsYXRmb3JtO1xuICAgIFBsdWdpbkhvc3QuaW5zdGFuY2Uuc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzO1xuXG4gICAgbS5jZGsucHVzaCh7b3A6IGBwbGF0Zm9ybS4ke3RoaXMucGxhdGZvcm19LmluaXRgLCBhcmdzOiBbXX0pO1xuXG4gICAgY29uc3QgZGF0YVR5cGVzID0gbmV3IFNldCgpO1xuXG4gICAgbm9kZS5pbnB1dHMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICBkYXRhVHlwZXMuYWRkKGdldFR5cGUoKDx2aS5JbnB1dE5vZGU+eCkuZGF0YXNldCkpO1xuICAgIH0pO1xuICAgIG5vZGUub3V0cHV0cy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIGRhdGFUeXBlcy5hZGQoZ2V0VHlwZSgoPHZpLk91dHB1dE5vZGU+eCkuZGF0YXNldCkpO1xuICAgIH0pO1xuXG4gICAgZGF0YVR5cGVzLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgbS5jZGsucHVzaCh7b3A6IGBkYXRhLiR7dHlwZX0uaW5pdGAsIGFyZ3M6IFt0aGlzLnBsYXRmb3JtXX0pO1xuICAgIH0pO1xuXG4gICAgbm9kZS5vdXRwdXRzLm1hcCgoeCkgPT4gdGhpcy5wcmVwYXJlT3V0cHV0KDx2aS5PdXRwdXROb2RlPngsIG0pKTtcblxuICAgIHRoaXMudmlzaXQobm9kZSwgbSk7XG5cbiAgICBtLnNkay5wdXNoKHtvcDogYHBsYXRmb3JtLiR7dGhpcy5wbGF0Zm9ybX0ucnVuYCwgYXJnczogW119KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZU91dHB1dChub2RlOiB2aS5PdXRwdXROb2RlLCBtOiBJUikge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlKG5vZGUuZGF0YXNldCk7XG4gICAgbS5zZGsucHVzaCh7b3A6IGBkYXRhLiR7dHlwZX0uaW1wb3J0YCwgYXJnczogW3RoaXMucGxhdGZvcm0sIG5vZGUuZGF0YXNldF19KTtcbiAgfVxuXG4gIHZpc2l0SW5wdXQobm9kZTogdmkuSW5wdXROb2RlLCBtOiBJUikge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlKG5vZGUuZGF0YXNldCk7XG4gICAgbS5zZGsucHVzaCh7b3A6IGBkYXRhLiR7dHlwZX0uaW1wb3J0YCwgYXJnczogW3RoaXMucGxhdGZvcm0sIG5vZGUuZGF0YXNldF19KTtcbiAgfVxuXG4gIHZpc2l0T3V0cHV0KG5vZGU6IHZpLk91dHB1dE5vZGUsIG06IElSKSB7XG4gICAgY29uc3QgdHlwZSA9IGdldFR5cGUobm9kZS5kYXRhc2V0KTtcbiAgICBtLnNkay5wdXNoKHtvcDogYGRhdGEuJHt0eXBlfS5leHBvcnRgLCBhcmdzOiBbdGhpcy5wbGF0Zm9ybSwgbm9kZS5kYXRhc2V0XX0pO1xuICB9XG5cbiAgdmlzaXRUYXNrKG5vZGU6IHZpLlRhc2tOb2RlLCBtOiBJUikge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlKG5vZGUudGFzayk7XG4gICAgbS5zZGsucHVzaCh7b3A6IGBwbGF0Zm9ybS4ke3RoaXMucGxhdGZvcm19LnRhc2tgLCBhcmdzOiBbdHlwZSwgbm9kZS50YXNrXX0pO1xuICB9XG59XG4iXX0=