UNPKG

@moonset/executor

Version:
58 lines 9.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginHost = void 0; const aws_cdk_1 = require("aws-cdk"); let PluginHost = /** @class */ (() => { class PluginHost { constructor() { this.hooks = {}; this.plugins = []; this.cdkPlugins = []; this.constructs = {}; //TODO: too open this.platformPlugins = {}; //TODO: too open if (PluginHost.instance && PluginHost.instance !== this) { throw new Error('New instances of PluginHost must not be built. Use PluginHost.instance instead!'); } } /** * Loads a plug-in into this PluginHost. * * @param moduleSpec the specification (path or name) of the plug-in module to be loaded. */ load(moduleSpec) { /* eslint-disable @typescript-eslint/no-require-imports */ const pluginModule = require(moduleSpec); /* eslint-enable */ pluginModule.plugins.forEach((plugin) => { if (isDataPlugin(plugin)) { this.hooks[`data.${plugin.type}.init`] = { fn: plugin.init, thisArg: plugin }; this.hooks[`data.${plugin.type}.import`] = { fn: plugin.import, thisArg: plugin }; this.hooks[`data.${plugin.type}.export`] = { fn: plugin.export, thisArg: plugin }; this.plugins.push(moduleSpec); } else if (isPlatformPlugin(plugin)) { this.hooks[`platform.${plugin.type}.init`] = { fn: plugin.init, thisArg: plugin }; this.hooks[`platform.${plugin.type}.task`] = { fn: plugin.task, thisArg: plugin }; this.hooks[`platform.${plugin.type}.run`] = { fn: plugin.run, thisArg: plugin }; this.plugins.push(moduleSpec); this.platformPlugins[plugin.type] = plugin; } else { // TODO CDK plugins feature is broken. aws_cdk_1.PluginHost.instance.load(moduleSpec); this.cdkPlugins.push(moduleSpec); } }); function isDataPlugin(x) { return x != null && x.plugin === 'data' && x.version === '1'; } function isPlatformPlugin(x) { return x != null && x.plugin === 'platform' && x.version === '1'; } } } PluginHost.instance = new PluginHost(); return PluginHost; })(); exports.PluginHost = PluginHost; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFDQUFvRDtBQXFDcEQ7SUFBQSxNQUFhLFVBQVU7UUFpQnJCO1lBZFMsVUFBSyxHQUE2QixFQUFFLENBQUM7WUFDckMsWUFBTyxHQUFhLEVBQUUsQ0FBQztZQUN2QixlQUFVLEdBQWEsRUFBRSxDQUFDO1lBQ25DLGVBQVUsR0FBNEIsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1lBQzFELG9CQUFlLEdBQTRCLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtZQVc3RCxJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQzthQUNwRztRQUNILENBQUM7UUFFRDs7OztXQUlHO1FBQ0ksSUFBSSxDQUFDLFVBQWtCO1lBQzFCLDBEQUEwRDtZQUMxRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekMsbUJBQW1CO1lBQ25CLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQztvQkFDaEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO29CQUNoRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDakM7cUJBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxDQUFDO29CQUNoRixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUM7b0JBQ2hGLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztpQkFDOUM7cUJBQU07b0JBQ0gsc0NBQXNDO29CQUN0QyxvQkFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNwQztZQUNELENBQUMsQ0FBQyxDQUFBO1lBQ0osU0FBUyxZQUFZLENBQUMsQ0FBTTtnQkFDMUIsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDO1lBQy9ELENBQUM7WUFDRCxTQUFTLGdCQUFnQixDQUFDLENBQU07Z0JBQzlCLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQztZQUNuRSxDQUFDO1FBQ0gsQ0FBQzs7SUF2RE0sbUJBQVEsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBd0RyQyxpQkFBQztLQUFBO0FBekRZLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2ZuIGZyb20gJ0Bhd3MtY2RrL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7UGx1Z2luSG9zdCBhcyBDZGtQbHVnaW5Ib3N0fSBmcm9tICdhd3MtY2RrJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhUGx1Z2luIHtcblxuICB2ZXJzaW9uOiAnMSc7XG5cbiAgcGx1Z2luOiAnZGF0YSc7XG5cbiAgdHlwZTogc3RyaW5nO1xuXG4gIGluaXQ6IChob3N0OiBQbHVnaW5Ib3N0LCBwbGF0Zm9ybTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIGltcG9ydDogKGhvc3Q6IFBsdWdpbkhvc3QsIHBsYXRmb3JtOiBzdHJpbmcsIGRhdGE6IGFueSkgPT4gdm9pZDtcblxuICBleHBvcnQ6IChob3N0OiBQbHVnaW5Ib3N0LCBwbGF0Zm9ybTogc3RyaW5nLCBkYXRhOiBhbnkpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1QbHVnaW4ge1xuXG4gIHZlcnNpb246ICcxJztcblxuICBwbHVnaW46ICdwbGF0Zm9ybSc7XG4gICAgICBcbiAgdHlwZTogc3RyaW5nO1xuXG4gIGluaXQ6IChob3N0OiBQbHVnaW5Ib3N0KSA9PiB2b2lkO1xuXG4gIHRhc2s6IChob3N0OiBQbHVnaW5Ib3N0LCB0eXBlOiBzdHJpbmcsIHRhc2s6IGFueSkgPT4gUHJvbWlzZTxhbnk+O1xuXG4gIHJ1bjogKGhvc3Q6IFBsdWdpbkhvc3QpID0+IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb29rIHtcbiAgICBmbjogRnVuY3Rpb247XG4gICAgdGhpc0FyZzogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgUGx1Z2luSG9zdCB7XG4gIHN0YXRpYyBpbnN0YW5jZSA9IG5ldyBQbHVnaW5Ib3N0KCk7XG5cbiAgcmVhZG9ubHkgaG9va3M6IHsgW2tleTogc3RyaW5nXTogSG9vazsgfSA9IHt9O1xuICByZWFkb25seSBwbHVnaW5zOiBzdHJpbmdbXSA9IFtdO1xuICByZWFkb25seSBjZGtQbHVnaW5zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdHJ1Y3RzOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSA9IHt9OyAvL1RPRE86IHRvbyBvcGVuXG4gIHBsYXRmb3JtUGx1Z2luczogeyBba2V5OiBzdHJpbmddOiBhbnk7IH0gPSB7fTsgLy9UT0RPOiB0b28gb3BlblxuXG4gIGlkOiBzdHJpbmc7XG5cbiAgc2Vzc2lvbjogc3RyaW5nO1xuXG4gIHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgc2V0dGluZ3M6IGFueTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoUGx1Z2luSG9zdC5pbnN0YW5jZSAmJiBQbHVnaW5Ib3N0Lmluc3RhbmNlICE9PSB0aGlzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldyBpbnN0YW5jZXMgb2YgUGx1Z2luSG9zdCBtdXN0IG5vdCBiZSBidWlsdC4gVXNlIFBsdWdpbkhvc3QuaW5zdGFuY2UgaW5zdGVhZCEnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYSBwbHVnLWluIGludG8gdGhpcyBQbHVnaW5Ib3N0LlxuICAgKlxuICAgKiBAcGFyYW0gbW9kdWxlU3BlYyB0aGUgc3BlY2lmaWNhdGlvbiAocGF0aCBvciBuYW1lKSBvZiB0aGUgcGx1Zy1pbiBtb2R1bGUgdG8gYmUgbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGxvYWQobW9kdWxlU3BlYzogc3RyaW5nKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgICBjb25zdCBwbHVnaW5Nb2R1bGUgPSByZXF1aXJlKG1vZHVsZVNwZWMpO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICAgICAgcGx1Z2luTW9kdWxlLnBsdWdpbnMuZm9yRWFjaCgocGx1Z2luOiBhbnkpID0+IHtcbiAgICAgIGlmIChpc0RhdGFQbHVnaW4ocGx1Z2luKSkge1xuICAgICAgICAgIHRoaXMuaG9va3NbYGRhdGEuJHtwbHVnaW4udHlwZX0uaW5pdGBdID0ge2ZuOiBwbHVnaW4uaW5pdCwgdGhpc0FyZzogcGx1Z2lufTtcbiAgICAgICAgICB0aGlzLmhvb2tzW2BkYXRhLiR7cGx1Z2luLnR5cGV9LmltcG9ydGBdID0ge2ZuOiBwbHVnaW4uaW1wb3J0LCB0aGlzQXJnOiBwbHVnaW59O1xuICAgICAgICAgIHRoaXMuaG9va3NbYGRhdGEuJHtwbHVnaW4udHlwZX0uZXhwb3J0YF0gPSB7Zm46IHBsdWdpbi5leHBvcnQsIHRoaXNBcmc6IHBsdWdpbn07XG4gICAgICAgICAgdGhpcy5wbHVnaW5zLnB1c2gobW9kdWxlU3BlYyk7XG4gICAgICB9IGVsc2UgaWYgKGlzUGxhdGZvcm1QbHVnaW4ocGx1Z2luKSkge1xuICAgICAgICAgIHRoaXMuaG9va3NbYHBsYXRmb3JtLiR7cGx1Z2luLnR5cGV9LmluaXRgXSA9IHtmbjogcGx1Z2luLmluaXQsIHRoaXNBcmc6IHBsdWdpbn07XG4gICAgICAgICAgdGhpcy5ob29rc1tgcGxhdGZvcm0uJHtwbHVnaW4udHlwZX0udGFza2BdID0ge2ZuOiBwbHVnaW4udGFzaywgdGhpc0FyZzogcGx1Z2lufTtcbiAgICAgICAgICB0aGlzLmhvb2tzW2BwbGF0Zm9ybS4ke3BsdWdpbi50eXBlfS5ydW5gXSA9IHtmbjogcGx1Z2luLnJ1biwgdGhpc0FyZzogcGx1Z2lufTtcbiAgICAgICAgICB0aGlzLnBsdWdpbnMucHVzaChtb2R1bGVTcGVjKTtcbiAgICAgICAgICB0aGlzLnBsYXRmb3JtUGx1Z2luc1twbHVnaW4udHlwZV0gPSBwbHVnaW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRPRE8gQ0RLIHBsdWdpbnMgZmVhdHVyZSBpcyBicm9rZW4uXG4gICAgICAgICAgQ2RrUGx1Z2luSG9zdC5pbnN0YW5jZS5sb2FkKG1vZHVsZVNwZWMpO1xuICAgICAgICAgIHRoaXMuY2RrUGx1Z2lucy5wdXNoKG1vZHVsZVNwZWMpO1xuICAgICAgfVxuICAgICAgfSlcbiAgICBmdW5jdGlvbiBpc0RhdGFQbHVnaW4oeDogYW55KTogeCBpcyBEYXRhUGx1Z2luIHtcbiAgICAgIHJldHVybiB4ICE9IG51bGwgJiYgeC5wbHVnaW4gPT09ICdkYXRhJyAmJiB4LnZlcnNpb24gPT09ICcxJztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNQbGF0Zm9ybVBsdWdpbih4OiBhbnkpOiB4IGlzIFBsYXRmb3JtUGx1Z2luIHtcbiAgICAgIHJldHVybiB4ICE9IG51bGwgJiYgeC5wbHVnaW4gPT09ICdwbGF0Zm9ybScgJiYgeC52ZXJzaW9uID09PSAnMSc7XG4gICAgfVxuICB9XG59XG4iXX0=