UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

93 lines 7.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginManager = void 0; exports.isInitializable = isInitializable; const default_1 = require("../plugins/embedded/git/default"); const embedded_1 = require("../plugins/embedded"); function isInitializable(p) { return 'initialize' in p && typeof p.initialize === 'function'; } class PluginManager { project; packManagers = []; _gitPlatform; plugins = []; availablePlugins = []; get gitPlatform() { return this._gitPlatform; } constructor() { // Register embedded plugins. Should be somewhere else i gues embedded_1.embeddedPlugins.forEach(plugin => { this.register(plugin); }); } renderCompareUrl(from, to) { return this.render('renderCompareUrl', from, to); } renderCommitUrl(commitHash) { return this.render('renderCommitUrl', commitHash); } renderIssueUrl(issueId) { return this.render('renderIssueUrl', issueId); } async initialize(configuration) { const plugins = this.plugins.map(async (plugin) => { if (isInitializable(plugin)) { const result = await plugin.initialize(configuration); if (result) { return result; } return null; } else { return plugin; } }); const result = await Promise.all(plugins); this.availablePlugins = result.filter((t) => !!t).reverse(); this.project = this.availablePlugins.find(plugin => !!plugin.project)?.project; this.packManagers = this.availablePlugins .map(plugin => plugin.packManager) .filter((packManager) => !!packManager); const gitPlatform = this.availablePlugins.find(plugin => !!plugin.gitPlatform); if (gitPlatform) { this._gitPlatform = gitPlatform.gitPlatform; } else { this._gitPlatform = default_1.GitPlatformDefault.initialize(configuration); } } register(plugin) { this.plugins.push(plugin); } render(f, ...params) { for (const plugin of this.availablePlugins) { const func = plugin[f]; if (func) { return func.call(plugin, ...params); } } return undefined; } async dispatchHook(f, ...params) { for (const plugin of this.availablePlugins) { const func = plugin[f]; if (func) { await func.call(plugin, ...params); } } } async dispatchOnBump(application, workspace, version) { for (const plugin of this.availablePlugins) { await plugin.onBump?.(application, workspace, version); } } async dispatchOnPublish(application, packedPackage) { for (const plugin of this.availablePlugins) { await plugin.onPublish?.(application, packedPackage); } } } exports.PluginManager = PluginManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9wbHVnaW4tbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEyRUEsMENBRUM7QUE3RUQsNkRBQXFFO0FBQ3JFLGtEQUFzRDtBQTBFdEQsU0FBZ0IsZUFBZSxDQUFDLENBQXVCO0lBQ3JELE9BQU8sWUFBWSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFhLGFBQWE7SUFDeEIsT0FBTyxDQUFZO0lBQ25CLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBRTFCLFlBQVksQ0FBZ0I7SUFFcEMsT0FBTyxHQUEyQixFQUFFLENBQUM7SUFDckMsZ0JBQWdCLEdBQWMsRUFBRSxDQUFDO0lBRWpDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7UUFDRSw2REFBNkQ7UUFDN0QsMEJBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFrQixFQUFFLEVBQWdCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVB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