UNPKG

@moonset/executor

Version:
54 lines 8.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Run = void 0; const uuid_1 = require("uuid"); const ir = require("./ir"); const plugin_1 = require("./plugin"); const constants_1 = require("./constants"); const cdk_exec_1 = require("./cdk-exec"); const util_1 = require("@moonset/util"); const util_2 = require("@moonset/util"); const util_3 = require("@moonset/util"); const path = require("path"); class Run { constructor() { this.cdkApp = new cdk_exec_1.CDKApp(path.resolve(__dirname, 'cdk', 'moonset-app.js')); } async invoke(commands) { for (let command of commands.sdk) { const hook = plugin_1.PluginHost.instance.hooks[command.op]; await hook.fn.call(hook.thisArg, plugin_1.PluginHost.instance, ...command.args); } } async start(root) { const startTime = Date.now(); const commands = { cdk: [], sdk: [] }; root.accept(new ir.RunVisitor(), commands); util_1.logger.info("The intermediate representation are: " + JSON.stringify(commands)); const id = uuid_1.v4(); this.sdk = await util_3.SDKProvider.forWorkingAccount(); const session = await this.sdk.getSession(); // TODO: we set session/id in two places for PluginHost.(Another one is in // moonset-app.ts) Can we merge them into one? plugin_1.PluginHost.instance.session = session; plugin_1.PluginHost.instance.id = id; util_1.Serde.toFile({ id, commands, plugins: plugin_1.PluginHost.instance.plugins, session }, path.join(constants_1.MoonsetConstants.BUILD_TMP_DIR, constants_1.MoonsetConstants.MOONSET_PROPS)); await this.cdkApp.synth(); const synthTime = Date.now(); await this.cdkApp.deploy('--requireApproval=never', `--tags="${util_2.CommonConstants.MOONSET_SESSION}=${session}"`); const deployTime = Date.now(); await this.invoke(commands); const invokeTime = Date.now(); util_1.logger.info(`Synthesis time: ${(synthTime - startTime) / 1000} seconds`); util_1.logger.info(`Deploy time: ${(deployTime - synthTime) / 1000} seconds`); util_1.logger.info(`Invoke time: ${(invokeTime - deployTime) / 1000} seconds`); util_1.logger.info(`Total time: ${(invokeTime - startTime) / 1000} seconds`); } } exports.Run = Run; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFnQztBQUVoQywyQkFBMkI7QUFDM0IscUNBQW9DO0FBQ3BDLDJDQUFtRDtBQUNuRCx5Q0FBa0M7QUFDbEMsd0NBQTBFO0FBQzFFLHdDQUFxRDtBQUNyRCx3Q0FBZ0Q7QUFDaEQsNkJBQTZCO0FBRTdCLE1BQWEsR0FBRztJQUFoQjtRQUdVLFdBQU0sR0FBRyxJQUFJLGlCQUFNLENBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFvRHhELENBQUM7SUFsRFMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFlO1FBQ2hDLEtBQUssSUFBSSxPQUFPLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxtQkFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQkFBVSxDQUFDLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4RTtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLElBQWlCO1FBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QixNQUFNLFFBQVEsR0FBVSxFQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsYUFBTSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFaEYsTUFBTSxFQUFFLEdBQUcsU0FBSSxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLGtCQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsMEVBQTBFO1FBQzFFLDhDQUE4QztRQUM5QyxtQkFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLG1CQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDNUIsWUFBSyxDQUFDLE1BQU0sQ0FBQztZQUNULEVBQUU7WUFDRixRQUFRO1lBQ1IsT0FBTyxFQUFFLG1CQUFVLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDcEMsT0FBTztTQUNWLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBRSxDQUFDLGFBQWEsRUFBRSw0QkFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFbEQsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN0Qix5QkFBeUIsRUFDekIsV0FBVyxzQkFBRyxDQUFDLGVBQWUsSUFBSSxPQUFPLEdBQUcsQ0FDN0MsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU5QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTlCLGFBQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUM7UUFDekUsYUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQztRQUN2RSxhQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLGFBQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQXhERCxrQkF3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Y0IGFzIHV1aWR9IGZyb20gJ3V1aWQnO1xuaW1wb3J0ICogYXMgdmkgZnJvbSAnLi92aXNpdG9yJztcbmltcG9ydCAqIGFzIGlyIGZyb20gJy4vaXInO1xuaW1wb3J0IHtQbHVnaW5Ib3N0fSBmcm9tICcuL3BsdWdpbic7XG5pbXBvcnQge01vb25zZXRDb25zdGFudHMgYXMgTUN9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7Q0RLQXBwfSBmcm9tICcuL2Nkay1leGVjJztcbmltcG9ydCB7Q29uZmlnLCBDb25maWdDb25zdGFudCBhcyBDQywgbG9nZ2VyLCBTZXJkZX0gZnJvbSAnQG1vb25zZXQvdXRpbCc7XG5pbXBvcnQge0NvbW1vbkNvbnN0YW50cyBhcyBNQ0N9IGZyb20gJ0Btb29uc2V0L3V0aWwnO1xuaW1wb3J0IHtJU0RLLCBTREtQcm92aWRlcn0gZnJvbSAnQG1vb25zZXQvdXRpbCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgY2xhc3MgUnVue1xuXG4gIHByaXZhdGUgc2RrOiBJU0RLO1xuICBwcml2YXRlIGNka0FwcCA9IG5ldyBDREtBcHAoXG4gICAgICBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnY2RrJywgJ21vb25zZXQtYXBwLmpzJykpO1xuXG4gIHByaXZhdGUgYXN5bmMgaW52b2tlKGNvbW1hbmRzOiBpci5JUikge1xuICAgICAgZm9yIChsZXQgY29tbWFuZCBvZiBjb21tYW5kcy5zZGspIHtcbiAgICAgICAgY29uc3QgaG9vayA9IFBsdWdpbkhvc3QuaW5zdGFuY2UuaG9va3NbY29tbWFuZC5vcF07XG4gICAgICAgIGF3YWl0IGhvb2suZm4uY2FsbChob29rLnRoaXNBcmcsIFBsdWdpbkhvc3QuaW5zdGFuY2UsIC4uLmNvbW1hbmQuYXJncyk7XG4gICAgICB9XG4gIH1cblxuICBhc3luYyBzdGFydChyb290OiB2aS5Sb290Tm9kZSkge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCBjb21tYW5kczogaXIuSVIgPSB7Y2RrOiBbXSwgc2RrOiBbXX07XG4gICAgcm9vdC5hY2NlcHQobmV3IGlyLlJ1blZpc2l0b3IoKSwgY29tbWFuZHMpO1xuICAgIGxvZ2dlci5pbmZvKFwiVGhlIGludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiBhcmU6IFwiICsgSlNPTi5zdHJpbmdpZnkoY29tbWFuZHMpKTtcblxuICAgIGNvbnN0IGlkID0gdXVpZCgpO1xuXG4gICAgdGhpcy5zZGsgPSBhd2FpdCBTREtQcm92aWRlci5mb3JXb3JraW5nQWNjb3VudCgpO1xuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHRoaXMuc2RrLmdldFNlc3Npb24oKTtcbiAgICAvLyBUT0RPOiB3ZSBzZXQgc2Vzc2lvbi9pZCBpbiB0d28gcGxhY2VzIGZvciBQbHVnaW5Ib3N0LihBbm90aGVyIG9uZSBpcyBpblxuICAgIC8vIG1vb25zZXQtYXBwLnRzKSBDYW4gd2UgbWVyZ2UgdGhlbSBpbnRvIG9uZT9cbiAgICBQbHVnaW5Ib3N0Lmluc3RhbmNlLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgIFBsdWdpbkhvc3QuaW5zdGFuY2UuaWQgPSBpZDtcbiAgICBTZXJkZS50b0ZpbGUoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29tbWFuZHMsXG4gICAgICAgIHBsdWdpbnM6IFBsdWdpbkhvc3QuaW5zdGFuY2UucGx1Z2lucyxcbiAgICAgICAgc2Vzc2lvblxuICAgIH0sIHBhdGguam9pbihNQy5CVUlMRF9UTVBfRElSLCBNQy5NT09OU0VUX1BST1BTKSk7XG5cbiAgICBhd2FpdCB0aGlzLmNka0FwcC5zeW50aCgpO1xuXG4gICAgY29uc3Qgc3ludGhUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIGF3YWl0IHRoaXMuY2RrQXBwLmRlcGxveShcbiAgICAgICctLXJlcXVpcmVBcHByb3ZhbD1uZXZlcicsXG4gICAgICBgLS10YWdzPVwiJHtNQ0MuTU9PTlNFVF9TRVNTSU9OfT0ke3Nlc3Npb259XCJgLCAvL3RhZ3MgYWxsIHJlc291cmNlc1xuICAgICk7XG5cbiAgICBjb25zdCBkZXBsb3lUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgIGF3YWl0IHRoaXMuaW52b2tlKGNvbW1hbmRzKTtcblxuICAgIGNvbnN0IGludm9rZVRpbWUgPSBEYXRlLm5vdygpO1xuXG4gICAgbG9nZ2VyLmluZm8oYFN5bnRoZXNpcyB0aW1lOiAkeyhzeW50aFRpbWUgLSBzdGFydFRpbWUpIC8gMTAwMH0gc2Vjb25kc2ApO1xuICAgIGxvZ2dlci5pbmZvKGBEZXBsb3kgdGltZTogJHsoZGVwbG95VGltZSAtIHN5bnRoVGltZSkgLyAxMDAwfSBzZWNvbmRzYCk7XG4gICAgbG9nZ2VyLmluZm8oYEludm9rZSB0aW1lOiAkeyhpbnZva2VUaW1lIC0gZGVwbG95VGltZSkgLyAxMDAwfSBzZWNvbmRzYCk7XG4gICAgbG9nZ2VyLmluZm8oYFRvdGFsIHRpbWU6ICR7KGludm9rZVRpbWUgLSBzdGFydFRpbWUpIC8gMTAwMH0gc2Vjb25kc2ApO1xuICB9XG59XG4iXX0=