@salesforce/plugin-release-management
Version:
A plugin for preparing and publishing npm packages
67 lines • 2.67 kB
JavaScript
/*
* 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
*/
/* eslint-disable sf-plugin/no-hardcoded-messages-flags */
import { Flags, SfCommand, Ux } from '@salesforce/sf-plugins-core';
import { Messages } from '@salesforce/core';
import { retrieveKnownRepositories } from '../../repositories.js';
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
const messages = Messages.loadMessages('@salesforce/plugin-release-management', 'repositories');
export default class Repositories extends SfCommand {
static summary = messages.getMessage('description');
static description = messages.getMessage('description');
static examples = messages.getMessages('examples');
static flags = {
columns: Flags.string({
summary: messages.getMessage('flags.columns.summary'),
exclusive: ['extended'],
}),
csv: Flags.boolean({
summary: messages.getMessage('flags.csv.summary'),
exclusive: ['no-truncate'],
}),
extended: Flags.boolean({
char: 'x',
summary: messages.getMessage('flags.extended.summary'),
exclusive: ['columns'],
}),
filter: Flags.string({
summary: messages.getMessage('flags.filter.summary'),
}),
'no-header': Flags.boolean({
summary: messages.getMessage('flags.no-header.summary'),
exclusive: ['csv'],
}),
'no-truncate': Flags.boolean({
summary: messages.getMessage('flags.no-truncate.summary'),
exclusive: ['csv'],
}),
output: Flags.string({
summary: messages.getMessage('flags.output.summary'),
exclusive: ['no-truncate', 'csv'],
options: ['csv', 'json', 'yaml'],
}),
sort: Flags.string({
summary: messages.getMessage('flags.sort.summary'),
}),
};
async run() {
const { flags } = await this.parse(Repositories);
const repositories = await retrieveKnownRepositories();
const ux = new Ux({ jsonEnabled: flags.json ?? false });
ux.table({
data: repositories.map((s) => ({
organization: s.organization,
name: s.name,
url: s.url,
packages: s.packages.map((pkg) => `${pkg.type} ${pkg.name}`).join('\n'),
...flags, // parsed flags
})),
});
return repositories;
}
}
//# sourceMappingURL=index.js.map