UNPKG

sfdx-git-delta

Version:

Generate the sfdx content in source format and destructive change from two git commits

125 lines 4.79 kB
import { Flags, SfCommand } from '@salesforce/sf-plugins-core'; import { OUTPUT_DEFAULT_VALUE, REPO_DEFAULT_VALUE, SOURCE_DEFAULT_VALUE, TO_DEFAULT_VALUE, } from '../../../constant/cliConstants.js'; import sgd from '../../../main.js'; import { MessageService } from '../../../utils/MessageService.js'; const messages = new MessageService(); export default class SourceDeltaGenerate extends SfCommand { static summary = messages.getMessage('summary'); static description = messages.getMessage('description'); static examples = messages.getMessages('examples'); static flags = { from: Flags.string({ char: 'f', summary: messages.getMessage('flags.from.summary'), required: true, }), to: Flags.string({ char: 't', summary: messages.getMessage('flags.to.summary'), default: TO_DEFAULT_VALUE, }), 'generate-delta': Flags.boolean({ char: 'd', summary: messages.getMessage('flags.generate-delta.summary'), }), 'output-dir': Flags.directory({ char: 'o', summary: messages.getMessage('flags.output.summary'), default: OUTPUT_DEFAULT_VALUE, exists: true, aliases: ['output'], deprecateAliases: true, }), 'repo-dir': Flags.directory({ char: 'r', summary: messages.getMessage('flags.repo.summary'), default: REPO_DEFAULT_VALUE, exists: true, aliases: ['repo'], deprecateAliases: true, }), 'source-dir': Flags.directory({ char: 's', summary: messages.getMessage('flags.source.summary'), default: SOURCE_DEFAULT_VALUE, exists: true, aliases: ['source'], deprecateAliases: true, }), 'ignore-file': Flags.file({ char: 'i', summary: messages.getMessage('flags.ignore.summary'), exists: true, aliases: ['ignore'], deprecateAliases: true, }), 'ignore-destructive-file': Flags.file({ char: 'D', summary: messages.getMessage('flags.ignore-destructive.summary'), exists: true, aliases: ['ignore-destructive'], deprecateAliases: true, }), 'include-file': Flags.file({ char: 'n', summary: messages.getMessage('flags.include.summary'), exists: true, aliases: ['include'], deprecateAliases: true, }), 'include-destructive-file': Flags.file({ char: 'N', summary: messages.getMessage('flags.include-destructive.summary'), exists: true, aliases: ['include-destructive'], deprecateAliases: true, }), 'ignore-whitespace': Flags.boolean({ char: 'W', summary: messages.getMessage('flags.ignore-whitespace.summary'), }), 'api-version': Flags.orgApiVersion({ char: 'a', summary: messages.getMessage('flags.api-version.summary'), }), }; async run() { const { flags } = await this.parse(SourceDeltaGenerate); const config = { apiVersion: parseInt(flags['api-version']) || undefined, from: flags['from'], generateDelta: flags['generate-delta'], ignore: flags['ignore-file'], ignoreDestructive: flags['ignore-destructive-file'], ignoreWhitespace: flags['ignore-whitespace'], include: flags['include-file'], includeDestructive: flags['include-destructive-file'], output: flags['output-dir'], repo: flags['repo-dir'], source: flags['source-dir'], to: flags['to'], }; this.spinner.start(messages.getMessage('info.CommandIsRunning'), undefined, { stdout: true }); const output = { 'output-dir': config.output, }; let finalMessage = messages.getMessage('info.CommandSuccess'); try { const jobResult = await sgd(config); for (const warning of jobResult.warnings) { this.warn(warning.message); } this.info(messages.getMessage('info.EncourageSponsorship')); } catch (err) { if (err instanceof Error) { finalMessage = `${messages.getMessage('info.CommandFailure')}: ${err.message}`; output.error = err.message; } process.exitCode = 1; } this.spinner.stop(finalMessage); return output; } } //# sourceMappingURL=delta.js.map