UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

58 lines 3.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.salesforceIdFlag = void 0; /* * 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 */ const core_1 = require("@oclif/core"); const core_2 = require("@salesforce/core"); core_2.Messages.importMessagesDirectory(__dirname); const messages = core_2.Messages.loadMessages('@salesforce/sf-plugins-core', 'messages'); /** * Id flag with built-in validation. Short character is `i` * * @example * * ``` * import { Flags } from '@salesforce/sf-plugins-core'; * public static flags = { * // set length or prefix * 'flag-name': salesforceId({ length: 15, startsWith: '00D' }), * // add flag properties * 'flag2': salesforceId({ * required: true, * description: 'flag2 description', * }), * // override the character i * 'flag3': salesforceId({ * char: 'j', * }), * } * ``` */ exports.salesforceIdFlag = core_1.Flags.custom({ // eslint-disable-next-line @typescript-eslint/require-await parse: async (input, _ctx, opts) => validate(input, opts), char: 'i', }); const validate = (input, config) => { const { length, startsWith } = config ?? {}; // If the flag doesn't specify a length or specifies "both", then let it accept both 15 or 18. const allowedIdLength = !length || length === 'both' ? [15, 18] : [length]; if (!allowedIdLength.includes(input.length)) { throw messages.createError('errors.InvalidIdLength', [ allowedIdLength.join(` ${messages.getMessage('errors.InvalidIdLength.or')} `), ]); } if (!(0, core_2.validateSalesforceId)(input)) { throw messages.createError('errors.InvalidId'); } if (startsWith && !input.startsWith(startsWith)) { throw messages.createError('errors.InvalidPrefix', [startsWith]); } return input; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNmb3JjZUlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZsYWdzL3NhbGVzZm9yY2VJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7R0FLRztBQUNILHNDQUFvQztBQUNwQywyQ0FBa0U7QUFFbEUsZUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sUUFBUSxHQUFHLGVBQVEsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFhbEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsWUFBSyxDQUFDLE1BQU0sQ0FBdUI7SUFDakUsNERBQTREO0lBQzVELEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQ3pELElBQUksRUFBRSxHQUFHO0NBQ1YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFhLEVBQUUsTUFBcUIsRUFBVSxFQUFFO0lBQ2hFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUU1Qyw4RkFBOEY7SUFDOUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFO1lBQ25ELGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQztTQUM5RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLElBQUEsMkJBQW9CLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFFBQVEsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEQsTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMifQ==