@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
94 lines • 7.65 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 sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
const path_1 = __importDefault(require("path"));
const FileSystem_1 = __importDefault(require("../../utils/FileSystem"));
const CreatePackage_1 = require("./CreatePackage");
const SfpPackage_1 = require("../SfpPackage");
const SFDMU_CONFIG = 'export.json';
const VLOCITY_CONFIG = 'VlocityComponents.yaml';
class CreateDataPackageImpl extends CreatePackage_1.CreatePackage {
constructor(projectDirectory, sfpPackage, packageCreationParams, logger, params) {
super(projectDirectory, sfpPackage, packageCreationParams, logger, params);
this.projectDirectory = projectDirectory;
this.sfpPackage = sfpPackage;
this.packageCreationParams = packageCreationParams;
this.logger = logger;
this.params = params;
}
getTypeOfPackage() {
return SfpPackage_1.PackageType.Data;
}
isEmptyPackage(projectDirectory, packageDirectory) {
let files = FileSystem_1.default.readdirRecursive(path_1.default.join(projectDirectory, packageDirectory));
let hasExportJson = files.find((file) => path_1.default.basename(file) === 'export.json');
let hasCsvFile = files.find((file) => path_1.default.extname(file) === '.csv');
let hasYAMLFile = files.find((file) => path_1.default.extname(file) === '.yaml'); //check for vlocity config
if (hasYAMLFile)
return false;
if (!hasExportJson || !hasCsvFile)
return true;
else
return false;
}
preCreatePackage(sfpPackage) {
this.validateDataPackage(sfpPackage.resolvedPackageDirectory);
}
createPackage(sfpPackage) {
//Do Nothing, as no external calls or processing is required
}
postCreatePackage(sfpPackage) { }
printAdditionalPackageSpecificHeaders() { }
// Validate type of data package and existence of the correct configuration files
validateDataPackage(packageDirectory) {
const files = FileSystem_1.default.readdirRecursive(packageDirectory);
let isSfdmu;
let isVlocity;
for (const file of files) {
if (path_1.default.basename(file) === SFDMU_CONFIG)
isSfdmu = true;
if (path_1.default.basename(file) === VLOCITY_CONFIG)
isVlocity = true;
}
if (isSfdmu && isVlocity) {
throw new Error(`Data package '${this.sfpPackage.packageName}' contains both SFDMU & Vlocity configuration`);
}
else if (isSfdmu) {
sfp_logger_1.default.log(`Found export.json in ${packageDirectory}.. Utilizing it as data package and will be deployed using sfdmu`, sfp_logger_1.LoggerLevel.INFO, this.logger);
}
else if (isVlocity) {
sfp_logger_1.default.log(`Found VlocityComponents.yaml in ${packageDirectory}.. Utilizing it as data package and will be deployed using vbt`, sfp_logger_1.LoggerLevel.INFO, this.logger);
}
else {
throw new Error(`Could not find export.json or VlocityComponents.yaml in ${packageDirectory}. sfp only support vlocity or sfdmu based data packages`);
}
}
}
exports.default = CreateDataPackageImpl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRGF0YVBhY2thZ2VJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvcmUvcGFja2FnZS9wYWNrYWdlQ3JlYXRvcnMvQ3JlYXRlRGF0YVBhY2thZ2VJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBc0U7QUFDdEUsZ0RBQXdCO0FBQ3hCLHdFQUFnRDtBQUNoRCxtREFBZ0Q7QUFDaEQsOENBQTBFO0FBRzFFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUNuQyxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQUVoRCxNQUFxQixxQkFBc0IsU0FBUSw2QkFBYTtJQUM1RCxZQUNjLGdCQUF3QixFQUN4QixVQUFzQixFQUN0QixxQkFBNEMsRUFDNUMsTUFBZSxFQUNmLE1BQXlCO1FBRW5DLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTmpFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBR3ZDLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixPQUFPLHdCQUFXLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsZ0JBQXdCLEVBQUUsZ0JBQXdCO1FBQzdELElBQUksS0FBSyxHQUFhLG9CQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFakcsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsY0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQztRQUVoRixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBRXJFLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7UUFFbEcsSUFBRyxXQUFXO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQzs7WUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQVU7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBc0I7UUFDaEMsNERBQTREO0lBQ2hFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFzQixJQUFHLENBQUM7SUFFNUMscUNBQXFDLEtBQUksQ0FBQztJQUUxQyxpRkFBaUY7SUFDekUsbUJBQW1CLENBQUMsZ0JBQXdCO1FBQ2hELE1BQU0sS0FBSyxHQUFHLG9CQUFVLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQWdCLENBQUM7UUFDckIsSUFBSSxTQUFrQixDQUFDO1FBRXZCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxjQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVk7Z0JBQUUsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN6RCxJQUFJLGNBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssY0FBYztnQkFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlCQUFpQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsK0NBQStDLENBQzlGLENBQUM7UUFDTixDQUFDO2FBQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQixvQkFBUyxDQUFDLEdBQUcsQ0FDVCx3QkFBd0IsZ0JBQWdCLGtFQUFrRSxFQUMxRyx3QkFBVyxDQUFDLElBQUksRUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FDZCxDQUFDO1FBQ04sQ0FBQzthQUFNLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkIsb0JBQVMsQ0FBQyxHQUFHLENBQ1QsbUNBQW1DLGdCQUFnQixnRUFBZ0UsRUFDbkgsd0JBQVcsQ0FBQyxJQUFJLEVBQ2hCLElBQUksQ0FBQyxNQUFNLENBQ2QsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FDWCwyREFBMkQsZ0JBQWdCLHlEQUF5RCxDQUN2SSxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTNFRCx3Q0EyRUMifQ==