turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
82 lines (80 loc) • 9.96 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
}
Object.defineProperty(exports, "__esModule", { value: true });
const semver = __importStar(require("semver"));
const git = __importStar(require("./git"));
const node_async_1 = require("./node-async");
async function assertUnusedTag(tag) {
if (await git.tagExists(tag)) {
throw new Error(`Tag ${tag} already exists`);
}
}
exports.assertUnusedTag = assertUnusedTag;
function getVersionTag(version) {
return `v${version}`;
}
exports.getVersionTag = getVersionTag;
function getVersionMessage(version) {
return `Release v${version}`;
}
exports.getVersionMessage = getVersionMessage;
async function commitVersion(version, projectRoot) {
const tag = getVersionTag(version);
const message = getVersionMessage(version);
await git.execGit("add", ["."]);
await git.execGit("commit", ["-m", message]);
await git.execGit("tag", ["-a", tag, "-m", message]);
}
exports.commitVersion = commitVersion;
async function release(version, locations) {
await Promise.all([
assertUnusedTag(getVersionTag(version)),
git.assertCleanBranch(["master", getVersionTag(version)]),
]);
await setPackageVersion(version, locations);
await commitVersion(version, locations.root);
}
exports.release = release;
async function readJsonFile(filePath) {
return JSON.parse(await node_async_1.readText(filePath));
}
exports.readJsonFile = readJsonFile;
async function writeJsonFile(filePath, data) {
return node_async_1.writeText(filePath, JSON.stringify(data, null, 2) + "\n");
}
exports.writeJsonFile = writeJsonFile;
async function readPackage(locations) {
return readJsonFile(locations.packageJson);
}
exports.readPackage = readPackage;
async function writePackage(pkg, locations) {
return writeJsonFile(locations.packageJson, pkg);
}
exports.writePackage = writePackage;
async function setPackageVersion(version, locations) {
const packageData = await readPackage(locations);
packageData.version = version;
return writePackage(packageData, locations);
}
exports.setPackageVersion = setPackageVersion;
async function getNextVersion(bumpKind, locations) {
const packageData = await readPackage(locations);
const result = semver.inc(packageData.version, bumpKind);
if (typeof result !== "string") {
throw new Error("FailedAssertion: Unable to increment package version");
}
return result;
}
exports.getNextVersion = getNextVersion;
async function bumpVersion(bumpKind, locations) {
const nextVersion = await getNextVersion(bumpKind, locations);
await release(nextVersion, locations);
}
exports.bumpVersion = bumpVersion;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QVMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFKRCw4Q0FJQztBQUVNLEtBQUsseUJBQ1YsUUFBcUMsRUFDckMsU0FBa0I7SUFFbEIsTUFBTSxXQUFXLEdBQWdCLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sTUFBTSxHQUFrQixNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEUsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVZELHdDQVVDO0FBRU0sS0FBSyxzQkFBc0IsUUFBcUMsRUFBRSxTQUFrQjtJQUN6RixNQUFNLFdBQVcsR0FBVyxNQUFNLGNBQWMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxPQUFPLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFIRCxrQ0FHQyIsImZpbGUiOiJ1dGlscy9wcm9qZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gXCJzZW12ZXJcIjtcblxuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4vZ2l0XCI7XG5pbXBvcnQgeyByZWFkVGV4dCwgd3JpdGVUZXh0IH0gZnJvbSBcIi4vbm9kZS1hc3luY1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXNzZXJ0VW51c2VkVGFnKHRhZzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChhd2FpdCBnaXQudGFnRXhpc3RzKHRhZykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRhZyAke3RhZ30gYWxyZWFkeSBleGlzdHNgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2lvblRhZyh2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHYke3ZlcnNpb259YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb25NZXNzYWdlKHZlcnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgUmVsZWFzZSB2JHt2ZXJzaW9ufWA7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21taXRWZXJzaW9uKHZlcnNpb246IHN0cmluZywgcHJvamVjdFJvb3Q/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdGFnOiBzdHJpbmcgPSBnZXRWZXJzaW9uVGFnKHZlcnNpb24pO1xuICBjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBnZXRWZXJzaW9uTWVzc2FnZSh2ZXJzaW9uKTtcbiAgYXdhaXQgZ2l0LmV4ZWNHaXQoXCJhZGRcIiwgW1wiLlwiXSk7XG4gIGF3YWl0IGdpdC5leGVjR2l0KFwiY29tbWl0XCIsIFtcIi1tXCIsIG1lc3NhZ2VdKTtcbiAgYXdhaXQgZ2l0LmV4ZWNHaXQoXCJ0YWdcIiwgW1wiLWFcIiwgdGFnLCBcIi1tXCIsIG1lc3NhZ2VdKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbGVhc2UodmVyc2lvbjogc3RyaW5nLCBsb2NhdGlvbnM6IFByb2plY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGFzc2VydFVudXNlZFRhZyhnZXRWZXJzaW9uVGFnKHZlcnNpb24pKSxcbiAgICBnaXQuYXNzZXJ0Q2xlYW5CcmFuY2goW1wibWFzdGVyXCIsIGdldFZlcnNpb25UYWcodmVyc2lvbildKSxcbiAgXSk7XG4gIGF3YWl0IHNldFBhY2thZ2VWZXJzaW9uKHZlcnNpb24sIGxvY2F0aW9ucyk7XG4gIGF3YWl0IGNvbW1pdFZlcnNpb24odmVyc2lvbiwgbG9jYXRpb25zLnJvb3QpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VKc29uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBtYWluOiBzdHJpbmc7XG4gIHR5cGVzOiBzdHJpbmc7XG4gIG1vZHVsZT86IHN0cmluZztcbiAgc2NyaXB0PzogYW55O1xuICBnaXRIZWFkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZEpzb25GaWxlPFQgPSBhbnk+KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgcmVhZFRleHQoZmlsZVBhdGgpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlSnNvbkZpbGU8VD4oZmlsZVBhdGg6IHN0cmluZywgZGF0YTogVCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gd3JpdGVUZXh0KGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSArIFwiXFxuXCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFBhY2thZ2UobG9jYXRpb25zOiBQcm9qZWN0KTogUHJvbWlzZTxQYWNrYWdlSnNvbj4ge1xuICByZXR1cm4gcmVhZEpzb25GaWxlPFBhY2thZ2VKc29uPihsb2NhdGlvbnMucGFja2FnZUpzb24pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQYWNrYWdlKHBrZzogUGFja2FnZUpzb24sIGxvY2F0aW9uczogUHJvamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gd3JpdGVKc29uRmlsZShsb2NhdGlvbnMucGFja2FnZUpzb24sIHBrZyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQYWNrYWdlVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcsIGxvY2F0aW9uczogUHJvamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwYWNrYWdlRGF0YTogUGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZShsb2NhdGlvbnMpO1xuICBwYWNrYWdlRGF0YS52ZXJzaW9uID0gdmVyc2lvbjtcbiAgcmV0dXJuIHdyaXRlUGFja2FnZShwYWNrYWdlRGF0YSwgbG9jYXRpb25zKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE5leHRWZXJzaW9uKFxuICBidW1wS2luZDogXCJtYWpvclwiIHwgXCJtaW5vclwiIHwgXCJwYXRjaFwiLFxuICBsb2NhdGlvbnM6IFByb2plY3QsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwYWNrYWdlRGF0YTogUGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZShsb2NhdGlvbnMpO1xuICBjb25zdCByZXN1bHQ6IHN0cmluZyB8IG51bGwgPSBzZW12ZXIuaW5jKHBhY2thZ2VEYXRhLnZlcnNpb24sIGJ1bXBLaW5kKTtcbiAgaWYgKHR5cGVvZiByZXN1bHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWRBc3NlcnRpb246IFVuYWJsZSB0byBpbmNyZW1lbnQgcGFja2FnZSB2ZXJzaW9uXCIpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidW1wVmVyc2lvbihidW1wS2luZDogXCJtYWpvclwiIHwgXCJtaW5vclwiIHwgXCJwYXRjaFwiLCBsb2NhdGlvbnM6IFByb2plY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbmV4dFZlcnNpb246IHN0cmluZyA9IGF3YWl0IGdldE5leHRWZXJzaW9uKGJ1bXBLaW5kLCBsb2NhdGlvbnMpO1xuICBhd2FpdCByZWxlYXNlKG5leHRWZXJzaW9uLCBsb2NhdGlvbnMpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIuLiJ9