@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
50 lines • 4.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const retry = require('async-retry');
class PreRequisiteCheck {
constructor(hubOrg) {
this.hubOrg = hubOrg;
}
async checkForPrerequisites() {
let sfdxAuthUrlFieldExists = false;
let conn = this.hubOrg.getConnection();
let expectedValues = ['In Progress', 'Available', 'Allocate', 'Assigned', 'Return'];
let availableValues = [];
if (!PreRequisiteCheck.isPrerequisiteChecked) {
await retry(async (bail) => {
PreRequisiteCheck.describeResult = await conn.sobject('ScratchOrgInfo').describe();
if (PreRequisiteCheck.describeResult) {
for (const field of PreRequisiteCheck.describeResult.fields) {
if (field.name === 'SfdxAuthUrl__c') {
sfdxAuthUrlFieldExists = true;
}
if (field.name === 'Allocation_status__c' && field.picklistValues.length >= 4) {
for (let picklistValue of field.picklistValues) {
if (picklistValue.active) {
availableValues.push(picklistValue.value);
}
}
}
}
}
}, { retries: 3, minTimeout: 30000 });
PreRequisiteCheck.isPrerequisiteChecked = true;
//If there are values returned, its not compatible
let statusValuesAvailable = expectedValues.filter((item) => {
return !availableValues.includes(item);
}).length <= 1
? true
: false;
if (sfdxAuthUrlFieldExists && statusValuesAvailable)
PreRequisiteCheck.isPrerequisiteMet = true;
}
if (!PreRequisiteCheck.isPrerequisiteMet) {
throw new Error(`Required Prerequisite values in ScratchOrgInfo is missing in the DevHub` +
`For more information Please refer https://docs.flxbl.io/sfp/pools/setting-up-your-salesforce-org-for-scratch-org-pools \n`);
}
}
}
PreRequisiteCheck.isPrerequisiteChecked = false;
PreRequisiteCheck.isPrerequisiteMet = false;
exports.default = PreRequisiteCheck;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlUmVxdWlzaXRlQ2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29yZS9zY3JhdGNob3JnL3Bvb2wvcHJlcXVpc2l0ZWNoZWNrL1ByZVJlcXVpc2l0ZUNoZWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBS3JDLE1BQXFCLGlCQUFpQjtJQU9sQyxZQUFZLE1BQVc7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUI7UUFDOUIsSUFBSSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLGNBQWMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNuRixJQUFJLGVBQWUsR0FBYSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDM0MsTUFBTSxLQUFLLENBQ1AsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNYLGlCQUFpQixDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkYsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDbkMsS0FBSyxNQUFNLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQzFELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRSxDQUFDOzRCQUNsQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7d0JBQ2xDLENBQUM7d0JBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHNCQUFzQixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDOzRCQUM1RSxLQUFLLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQ0FDN0MsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7b0NBQ3ZCLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUM5QyxDQUFDOzRCQUNMLENBQUM7d0JBQ0wsQ0FBQztvQkFDTCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDLEVBQ0QsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FDcEMsQ0FBQztZQUVGLGlCQUFpQixDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUMvQyxrREFBa0Q7WUFDbEQsSUFBSSxxQkFBcUIsR0FDckIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMzQixPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFDVixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsS0FBSyxDQUFDO1lBRWhCLElBQUksc0JBQXNCLElBQUkscUJBQXFCO2dCQUFFLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNwRyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBRSx5RUFBeUU7Z0JBQ3pFLDJIQUEySCxDQUFDLENBQUM7UUFDcEosQ0FBQztJQUNMLENBQUM7O0FBdERjLHVDQUFxQixHQUFZLEtBQUssQ0FBQztBQUN2QyxtQ0FBaUIsR0FBRyxLQUFLLENBQUM7a0JBRnhCLGlCQUFpQiJ9