sf-decomposer
Version:
Split large Salesforce metadata files into version-control-friendly pieces and rebuild deployment-ready files.
50 lines • 1.96 kB
JavaScript
;
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
import { Messages } from '@salesforce/core';
import { recomposeMetadataTypes } from '../../core/recomposeMetadataTypes.js';
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
const messages = Messages.loadMessages('sf-decomposer', 'decomposer.recompose');
export default class DecomposerRecompose extends SfCommand {
static summary = messages.getMessage('summary');
static description = messages.getMessage('description');
static examples = messages.getMessages('examples');
static flags = {
'metadata-type': Flags.string({
summary: messages.getMessage('flags.metadata-type.summary'),
char: 'm',
multiple: true,
required: false,
}),
manifest: Flags.file({
summary: messages.getMessage('flags.manifest.summary'),
char: 'x',
required: false,
exists: true,
}),
postpurge: Flags.boolean({
summary: messages.getMessage('flags.postpurge.summary'),
required: false,
default: false,
}),
'ignore-package-directory': Flags.directory({
summary: messages.getMessage('flags.ignore-package-directory.summary'),
char: 'i',
required: false,
multiple: true,
}),
};
async run() {
const { flags } = await this.parse(DecomposerRecompose);
if (!flags['metadata-type'] && !flags['manifest']) {
throw messages.createError('error.missingMetadataOrManifest');
}
return recomposeMetadataTypes({
metadataTypes: flags['metadata-type'],
postpurge: flags['postpurge'],
ignoreDirs: flags['ignore-package-directory'],
manifest: flags['manifest'],
log: this.log.bind(this),
});
}
}
//# sourceMappingURL=recompose.js.map