UNPKG

sf-decomposer

Version:

Break down large Salesforce metadata files into smaller, more manageable files for version control and then recreate deployment-compatible files.

80 lines 3.08 kB
'use strict'; /* eslint-disable no-await-in-loop */ import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { DECOMPOSED_FILE_TYPES, DECOMPOSED_STRATEGIES } from '../../helpers/constants.js'; import { decomposeMetadataTypes } from '../../core/decomposeMetadataTypes.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('sf-decomposer', 'decomposer.decompose'); export default class DecomposerDecompose 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: true, }), prepurge: Flags.boolean({ summary: messages.getMessage('flags.prepurge.summary'), required: false, default: false, }), postpurge: Flags.boolean({ summary: messages.getMessage('flags.postpurge.summary'), required: false, default: false, }), debug: Flags.boolean({ summary: messages.getMessage('flags.debug.summary'), required: false, default: false, }), format: Flags.string({ summary: messages.getMessage('flags.format.summary'), char: 'f', required: true, multiple: false, default: 'xml', options: DECOMPOSED_FILE_TYPES, }), 'ignore-package-directory': Flags.directory({ summary: messages.getMessage('flags.ignore-package-directory.summary'), char: 'i', required: false, multiple: true, }), strategy: Flags.string({ summary: messages.getMessage('flags.strategy.summary'), char: 's', required: true, multiple: false, default: 'unique-id', options: DECOMPOSED_STRATEGIES, }), 'decompose-nested-permissions': Flags.boolean({ summary: messages.getMessage('flags.decompose-nested-permissions.summary'), char: 'p', required: false, default: false, }), }; async run() { const { flags } = await this.parse(DecomposerDecompose); return decomposeMetadataTypes({ metadataTypes: flags['metadata-type'], prepurge: flags['prepurge'], postpurge: flags['postpurge'], debug: flags['debug'], format: flags['format'], ignoreDirs: flags['ignore-package-directory'], strategy: flags['strategy'], decomposeNestedPerms: flags['decompose-nested-permissions'], log: this.log.bind(this), warn: this.warn.bind(this), }); } } //# sourceMappingURL=decompose.js.map