release-please
Version:
generate release PRs based on the conventionalcommits.org spec
52 lines • 2.8 kB
JavaScript
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVersioningStrategyTypes = exports.unregisterVersioningStrategy = exports.registerVersioningStrategy = exports.buildVersioningStrategy = void 0;
const default_1 = require("../versioning-strategies/default");
const always_bump_patch_1 = require("../versioning-strategies/always-bump-patch");
const always_bump_minor_1 = require("../versioning-strategies/always-bump-minor");
const always_bump_major_1 = require("../versioning-strategies/always-bump-major");
const service_pack_1 = require("../versioning-strategies/service-pack");
const errors_1 = require("../errors");
const prerelease_1 = require("../versioning-strategies/prerelease");
const versioningTypes = {
default: options => new default_1.DefaultVersioningStrategy(options),
'always-bump-patch': options => new always_bump_patch_1.AlwaysBumpPatch(options),
'always-bump-minor': options => new always_bump_minor_1.AlwaysBumpMinor(options),
'always-bump-major': options => new always_bump_major_1.AlwaysBumpMajor(options),
'service-pack': options => new service_pack_1.ServicePackVersioningStrategy(options),
prerelease: options => new prerelease_1.PrereleaseVersioningStrategy(options),
};
function buildVersioningStrategy(options) {
const builder = versioningTypes[options.type || 'default'];
if (builder) {
return builder(options);
}
throw new errors_1.ConfigurationError(`Unknown versioning strategy type: ${options.type}`, 'core', `${options.github.repository.owner}/${options.github.repository.repo}`);
}
exports.buildVersioningStrategy = buildVersioningStrategy;
function registerVersioningStrategy(name, versioningStrategyBuilder) {
versioningTypes[name] = versioningStrategyBuilder;
}
exports.registerVersioningStrategy = registerVersioningStrategy;
function unregisterVersioningStrategy(name) {
delete versioningTypes[name];
}
exports.unregisterVersioningStrategy = unregisterVersioningStrategy;
function getVersioningStrategyTypes() {
return Object.keys(versioningTypes).sort();
}
exports.getVersioningStrategyTypes = getVersioningStrategyTypes;
//# sourceMappingURL=versioning-strategy-factory.js.map
;