@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
94 lines • 6.5 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ProjectConfig_1 = __importDefault(require("../project/ProjectConfig"));
const simple_git_1 = __importDefault(require("simple-git"));
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
/**
* A class for generating a changelog between two commits
* for a single package
*/
class GeneratePackageChangelog {
constructor(sfdx_package, revFrom, revTo, project_directory) {
this.sfdx_package = sfdx_package;
this.revFrom = revFrom;
this.revTo = revTo;
this.project_directory = project_directory;
}
async exec() {
let git;
if (this.project_directory != null) {
git = (0, simple_git_1.default)(this.project_directory);
}
else {
git = (0, simple_git_1.default)();
}
let packageDescriptor;
try {
packageDescriptor = ProjectConfig_1.default.getSFDXPackageDescriptor(this.project_directory, this.sfdx_package);
}
catch (err) {
sfp_logger_1.default.log(`Unable to find descriptor for package ${this.sfdx_package}`, sfp_logger_1.LoggerLevel.WARN);
sfp_logger_1.default.log(err.message, sfp_logger_1.LoggerLevel.WARN);
}
let revFrom;
if (this.revFrom) {
revFrom = await git.revparse(['--short', `${this.revFrom}^{}`]);
}
let revTo = await git.revparse(['--short', `${this.revTo}^{}`]);
let options = {
file: packageDescriptor ? `${packageDescriptor['path']}*` : packageDescriptor,
};
if (revFrom) {
options.from = revFrom;
options.to = revTo;
}
const gitLogResult = await git.log(options);
let changelog = {
name: undefined,
from: undefined,
to: undefined,
commits: [],
};
changelog['name'] = this.sfdx_package;
changelog['from'] = revFrom;
changelog['to'] = revTo;
for (let commit of gitLogResult.all) {
changelog['commits'].push({
commitId: commit.hash.slice(0, 8),
date: commit.date,
author: commit.author_name,
message: commit.message,
body: commit.body,
});
}
return changelog;
}
}
exports.default = GeneratePackageChangelog;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdGVQYWNrYWdlQ2hhbmdlbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvY2hhbmdlbG9nL0dlbmVyYXRlUGFja2FnZUNoYW5nZWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkVBQXFEO0FBQ3JELDREQUE4RDtBQUU5RCxtRUFBOEQ7QUFFOUQ7OztHQUdHO0FBQ0gsTUFBcUIsd0JBQXdCO0lBQ3pDLFlBQ3FCLFlBQW9CLEVBQ3BCLE9BQWUsRUFDZixLQUFhLEVBQ2IsaUJBQXlCO1FBSHpCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO0lBQzNDLENBQUM7SUFFRyxLQUFLLENBQUMsSUFBSTtRQUNiLElBQUksR0FBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pDLEdBQUcsR0FBRyxJQUFBLG9CQUFTLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDSixHQUFHLEdBQUcsSUFBQSxvQkFBUyxHQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksaUJBQWlCLENBQUM7UUFDdEIsSUFBSSxDQUFDO1lBQ0QsaUJBQWlCLEdBQUcsdUJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFHLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1gsb0JBQVMsQ0FBQyxHQUFHLENBQUMseUNBQXlDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSx3QkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlGLG9CQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsd0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBR0QsSUFBSSxLQUFLLEdBQVcsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV4RSxJQUFJLE9BQU8sR0FBZTtZQUN0QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1NBQ2hGLENBQUM7UUFDRixJQUFHLE9BQU8sRUFDVixDQUFDO1lBQ0csT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDdkIsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxJQUFJLFNBQVMsR0FBYztZQUN2QixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsRUFBRSxFQUFFLFNBQVM7WUFDYixPQUFPLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFFRixTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFeEIsS0FBSyxJQUFJLE1BQU0sSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDdEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMxQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ3ZCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTthQUNwQixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBbEVELDJDQWtFQyJ9