salesforce-alm
Version:
This package contains tools, and APIs, for an improved salesforce.com developer experience.
107 lines (105 loc) • 4.34 kB
JavaScript
"use strict";
/*
* Copyright (c) 2020, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
// Local
const Messages = require("../messages");
const messages = Messages();
const logger = require("../core/logApi");
const pkgUtils = require("./packageUtils");
const QUERY = 'SELECT Id, SubscriberPackageId, Name, Description, NamespacePrefix, ContainerOptions, IsOrgDependent, ConvertedFromPackageId, ' +
'PackageErrorUsername, CreatedById ' +
'FROM Package2 ' +
'WHERE IsDeprecated != true ' +
'ORDER BY NamespacePrefix, Name';
class PackageListCommand {
constructor() {
this.logger = logger.child('package:list');
this.results = [];
this.verbose = false;
}
execute(context) {
return this._execute(context).catch((err) => {
// TODO:
// until package2 is GA, wrap perm-based errors w/ 'contact sfdc' action (REMOVE once package2 is GA'd)
throw pkgUtils.applyErrorAction(err);
});
}
_execute(context) {
this.org = context.org;
this.force = this.org.force;
this.verbose = context.flags.verbose;
return this.force.toolingQuery(this.org, QUERY).then((queryResult) => {
const records = queryResult.records;
if (records && records.length > 0) {
this.results = records.map(({ Id, SubscriberPackageId, Name, Description, NamespacePrefix, ContainerOptions, ConvertedFromPackageId, IsOrgDependent, PackageErrorUsername, CreatedById, }) => {
const aliases = pkgUtils.getPackageAliasesFromId(Id, this.force);
const Alias = aliases.join();
IsOrgDependent = ContainerOptions === 'Managed' ? 'N/A' : IsOrgDependent === true ? 'Yes' : 'No';
return {
Id,
SubscriberPackageId,
Name,
Description,
NamespacePrefix,
ContainerOptions,
ConvertedFromPackageId,
Alias,
IsOrgDependent,
PackageErrorUsername,
CreatedBy: CreatedById,
};
});
}
return this.results;
});
}
getColumnData() {
this.logger.styledHeader(this.logger.color.blue(`Packages [${this.results.length}]`));
const columns = [
{
key: 'NamespacePrefix',
label: messages.getMessage('namespace', [], 'package_list'),
},
{ key: 'Name', label: messages.getMessage('name', [], 'package_list') },
{ key: 'Id', label: messages.getMessage('id', [], 'package_list') },
{ key: 'Alias', label: messages.getMessage('alias', [], 'package_list') },
{
key: 'Description',
label: messages.getMessage('description', [], 'package_list'),
},
{
key: 'ContainerOptions',
label: messages.getMessage('packageType', [], 'package_list'),
},
];
if (this.verbose) {
columns.push({
key: 'SubscriberPackageId',
label: messages.getMessage('packageId', [], 'package_list'),
});
columns.push({
key: 'ConvertedFromPackageId',
label: messages.getMessage('convertedFromPackageId', [], 'package_list'),
});
columns.push({
key: 'IsOrgDependent',
label: messages.getMessage('isOrgDependent', [], 'package_list'),
});
columns.push({
key: 'PackageErrorUsername',
label: messages.getMessage('errorNotificationUsername', [], 'package_list'),
});
columns.push({
key: 'CreatedBy',
label: messages.getMessage('createdBy', [], 'package_list'),
});
}
return columns;
}
}
module.exports = PackageListCommand;
//# sourceMappingURL=packageListCommand.js.map