UNPKG

salesforce-alm

Version:

This package contains tools, and APIs, for an improved salesforce.com developer experience.

107 lines (105 loc) 4.34 kB
"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