UNPKG

@salesforce/packaging

Version:

Packaging library for the Salesforce packaging platform

125 lines 6.41 kB
"use strict"; /* * 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 */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getQuery = getQuery; exports.list = list; exports.byId = byId; const node_util_1 = __importDefault(require("node:util")); const core_1 = require("@salesforce/core"); const interfaces_1 = require("../interfaces"); const packageUtils_1 = require("../utils/packageUtils"); core_1.Messages.importMessagesDirectory(__dirname); const messages = core_1.Messages.loadMessages('@salesforce/packaging', 'package_version_create'); function getQuery(connection) { const QUERY = 'SELECT Id, Status, Package2Id, Package2.Name, Package2VersionId, Package2Version.SubscriberPackageVersionId, Package2Version.HasPassedCodeCoverageCheck,Package2Version.CodeCoverage, Tag, Branch, ' + 'Package2Version.MajorVersion, Package2Version.MinorVersion, Package2Version.PatchVersion, Package2Version.BuildNumber, ' + 'CreatedDate, Package2Version.HasMetadataRemoved, CreatedById, IsConversionRequest, Package2Version.ConvertedFromVersionId ' + (Number(connection.version) > 60.0 ? ', AsyncValidation ' : '') + (Number(connection.version) > 63.0 ? ', Package2Version.TotalNumberOfMetadataFiles, Package2Version.TotalSizeOfMetadataFiles ' : '') + 'FROM Package2VersionCreateRequest ' + '%s' + // WHERE, if applicable 'ORDER BY CreatedDate desc'; return QUERY; } function formatDate(date) { const pad = (num) => (num < 10 ? `0${num}` : `${num}`); return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`; } async function list(connection, options) { try { const whereClause = constructWhere(options); return await query(node_util_1.default.format(getQuery(connection), whereClause), connection); } catch (err) { if (err instanceof Error) { throw (0, packageUtils_1.applyErrorAction)((0, packageUtils_1.massageErrorMessage)(err)); } throw err; } } async function byId(packageVersionCreateRequestId, connection) { const results = await query(node_util_1.default.format(getQuery(connection), `WHERE Id = '${packageVersionCreateRequestId}' `), connection); if (results && results.length === 1 && results[0].Status === interfaces_1.PackagingSObjects.Package2VersionStatus.error) { results[0].Error = await queryForErrors(packageVersionCreateRequestId, connection); } return results; } // eslint-disable-next-line @typescript-eslint/no-shadow async function query(query, connection) { const queryResult = await connection.autoFetchQuery(query, { tooling: true }); return (queryResult.records ? queryResult.records : []).map((record) => ({ Id: record.Id, Status: record.Status, Package2Id: record.Package2Id, Package2Name: record.Package2 != null ? record.Package2.Name : null, Package2VersionId: record.Package2VersionId, SubscriberPackageVersionId: record.Package2Version != null ? record.Package2Version.SubscriberPackageVersionId : null, Tag: record.Tag, Branch: record.Branch, Error: [], CreatedDate: formatDate(new Date(record.CreatedDate)), HasMetadataRemoved: record.Package2Version != null ? record.Package2Version.HasMetadataRemoved : null, CodeCoverage: record.Package2Version?.CodeCoverage != null ? record.Package2Version.CodeCoverage.apexCodeCoveragePercentage : null, VersionNumber: record.Package2Version != null ? `${record.Package2Version.MajorVersion}.${record.Package2Version.MinorVersion}.${record.Package2Version.PatchVersion}.${record.Package2Version.BuildNumber}` : null, HasPassedCodeCoverageCheck: record.Package2Version != null ? record.Package2Version.HasPassedCodeCoverageCheck : null, CreatedBy: record.CreatedById, ConvertedFromVersionId: convertedFromVersionMessage(record.Status, record.Package2Version?.ConvertedFromVersionId), TotalNumberOfMetadataFiles: record.Package2Version != null ? record.Package2Version.TotalNumberOfMetadataFiles : null, TotalSizeOfMetadataFiles: record.Package2Version != null ? record.Package2Version.TotalSizeOfMetadataFiles : null, })); } function convertedFromVersionMessage(status, convertedFromVersionId) { switch (status) { case 'Success': return convertedFromVersionId; case 'Queued': return messages.getMessage('IdUnavailableWhenQueued'); case 'InProgress': return messages.getMessage('IdUnavailableWhenInProgress'); case 'Error': return messages.getMessage('IdUnavailableWhenError'); default: return messages.getMessage('IdUnavailableWhenInProgress'); } } async function queryForErrors(packageVersionCreateRequestId, connection) { const queryResult = await connection.tooling.query(`SELECT Message FROM Package2VersionCreateRequestError WHERE ParentRequest.Id = '${packageVersionCreateRequestId}'`); return queryResult.records ? queryResult.records.map((record) => record.Message) : []; } function constructWhere(options) { const where = []; if (options?.id) { where.push(`Id = '${options.id}'`); } // filter on created date, days ago: 0 for today, etc if (options?.createdlastdays !== undefined) { if (options.createdlastdays < 0) { throw messages.createError('invalidDaysNumber', ['createdlastdays', options.createdlastdays]); } where.push(`CreatedDate = LAST_N_DAYS:${options.createdlastdays}`); } // filter on errors if (options?.status) { where.push(`Status = '${options.status.toLowerCase()}'`); } // show only conversions if (options?.showConversionsOnly) { where.push('IsConversionRequest = true '); } return where.length > 0 ? `WHERE ${where.join(' AND ')}` : ''; } //# sourceMappingURL=packageVersionCreateRequest.js.map