@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
93 lines • 7.16 kB
JavaScript
;
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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