@moonset/executor
Version:
The Moonset Executor
45 lines • 4.34 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Executor = void 0;
const model_1 = require("@moonset/model");
const vi = require("./visitor");
const ir = require("./ir");
const run_1 = require("./run");
class Executor {
constructor() { }
async run(job) {
await new run_1.Run().start(this.getRootNode(job));
}
ir(job) {
const root = this.getRootNode(job);
const states = { cdk: [], sdk: [] };
root.accept(new ir.RunVisitor(), states);
return states;
}
getRootNode(job) {
const jobInput = Array.isArray(job) ? job : [job];
const jobs = jobInput.map((x) => {
const obj = JSON.parse(x);
const err = model_1.Job.verify(obj);
if (err) {
throw new Error('Bad Input: ' + err);
}
return model_1.Job.create(obj);
});
return new vi.RootNode(jobs);
}
}
exports.Executor = Executor;
__exportStar(require("./plugin"), exports);
__exportStar(require("./constants"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsMENBQW1DO0FBQ25DLGdDQUFnQztBQUNoQywyQkFBMkI7QUFFM0IsK0JBQTBCO0FBRzFCLE1BQWEsUUFBUTtJQUNuQixnQkFBZSxDQUFDO0lBRWhCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBUTtRQUNoQixNQUFNLElBQUksU0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsRUFBRSxDQUFDLEdBQVE7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFVLEVBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sV0FBVyxDQUFDLEdBQVE7UUFDMUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sR0FBRyxHQUFHLFdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDdEM7WUFDRCxPQUFPLFdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUF4QkQsNEJBd0JDO0FBRUQsMkNBQXlCO0FBQ3pCLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Sm9ifSBmcm9tICdAbW9vbnNldC9tb2RlbCc7XG5pbXBvcnQgKiBhcyB2aSBmcm9tICcuL3Zpc2l0b3InO1xuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi9pcic7XG5pbXBvcnQge2xvZ2dlcn0gZnJvbSAnQG1vb25zZXQvdXRpbCc7XG5pbXBvcnQge1J1bn0gZnJvbSAnLi9ydW4nO1xuXG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRvciB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBhc3luYyBydW4oam9iOiBhbnkpIHtcbiAgICBhd2FpdCBuZXcgUnVuKCkuc3RhcnQodGhpcy5nZXRSb290Tm9kZShqb2IpKTtcbiAgfVxuICBpcihqb2I6IGFueSk6IGlyLklSIHtcbiAgICBjb25zdCByb290ID0gdGhpcy5nZXRSb290Tm9kZShqb2IpO1xuICAgIGNvbnN0IHN0YXRlczogaXIuSVIgPSB7Y2RrOiBbXSwgc2RrOiBbXX07XG4gICAgcm9vdC5hY2NlcHQobmV3IGlyLlJ1blZpc2l0b3IoKSwgc3RhdGVzKTtcbiAgICByZXR1cm4gc3RhdGVzO1xuICB9XG4gIHByaXZhdGUgZ2V0Um9vdE5vZGUoam9iOiBhbnkpOiB2aS5Sb290Tm9kZSB7XG4gICAgY29uc3Qgam9iSW5wdXQgPSBBcnJheS5pc0FycmF5KGpvYikgPyBqb2IgOiBbam9iXTtcbiAgICBjb25zdCBqb2JzID0gam9iSW5wdXQubWFwKCh4KSA9PiB7XG4gICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHgpO1xuICAgICAgY29uc3QgZXJyID0gSm9iLnZlcmlmeShvYmopO1xuICAgICAgaWYgKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBJbnB1dDogJyArIGVycik7XG4gICAgICB9XG4gICAgICByZXR1cm4gSm9iLmNyZWF0ZShvYmopO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXcgdmkuUm9vdE5vZGUoam9icyk7XG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuIl19