UNPKG

@salesforce/plugin-templates

Version:

Commands to create metadata from a default or custom template

81 lines 3.35 kB
/* * Copyright (c) 2019, 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 */ import { arrayWithDeprecation, Flags, loglevel, orgApiVersionFlagWithDeprecations, SfCommand, Ux, } from '@salesforce/sf-plugins-core'; import { TemplateType } from '@salesforce/templates'; import { CreateUtil } from '@salesforce/templates/lib/utils/index.js'; import { Messages } from '@salesforce/core'; import { getCustomTemplates, runGenerator } from '../../../utils/templateCommand.js'; import { outputDirFlag } from '../../../utils/flags.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const apexTriggerFileSuffix = /.trigger$/; const commonMessages = Messages.loadMessages('@salesforce/plugin-templates', 'messages'); const messages = Messages.loadMessages('@salesforce/plugin-templates', 'apexTrigger'); export default class ApexTrigger extends SfCommand { static summary = messages.getMessage('summary'); static description = messages.getMessage('description'); static examples = messages.getMessages('examples'); static aliases = ['force:apex:trigger:create']; static deprecateAliases = true; static flags = { name: Flags.string({ char: 'n', summary: messages.getMessage('flags.name.summary'), description: messages.getMessage('flags.name.description'), required: true, aliases: ['triggername'], deprecateAliases: true, }), template: Flags.string({ char: 't', summary: commonMessages.getMessage('flags.template.summary'), description: commonMessages.getMessage('flags.template.description'), default: 'ApexTrigger', options: CreateUtil.getCommandTemplatesForFiletype(apexTriggerFileSuffix, 'apextrigger'), }), 'output-dir': outputDirFlag, 'api-version': orgApiVersionFlagWithDeprecations, sobject: Flags.string({ char: 's', summary: messages.getMessage('flags.sobject.summary'), default: 'SOBJECT', }), event: arrayWithDeprecation({ char: 'e', aliases: ['triggerevents'], deprecateAliases: true, summary: messages.getMessage('flags.event.summary'), default: ['before insert'], options: [ 'before insert', 'before update', 'before delete', 'after insert', 'after update', 'after delete', 'after undelete', ], }), loglevel, }; async run() { const { flags } = await this.parse(ApexTrigger); const opts = { triggername: flags.name, outputdir: flags['output-dir'], template: 'ApexTrigger', sobject: flags.sobject, triggerevents: flags.event, }; return runGenerator({ templateType: TemplateType.ApexTrigger, opts, ux: new Ux({ jsonEnabled: this.jsonEnabled() }), templates: getCustomTemplates(this.configAggregator), }); } } //# sourceMappingURL=trigger.js.map