UNPKG

@broadcom/endevor-bridge-for-git-for-zowe-cli

Version:

Endevor Bridge for Git plug-in for Zowe CLI

75 lines (71 loc) 2.77 kB
'use strict'; var EndevorUserSchema = require('./schemas/EndevorUserSchema.js'); var imperative = require('@zowe/imperative'); /* * Copyright (c) 2026 Broadcom. All Rights Reserved. The term * "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. * * This software and all information contained therein is * confidential and proprietary and shall not be duplicated, * used, disclosed, or disseminated in any way except as * authorized by the applicable license agreement, without the * express written permission of Broadcom. All authorized * reproductions must be marked with this language. * * EXCEPT AS SET FORTH IN THE APPLICABLE LICENSE AGREEMENT, TO * THE EXTENT PERMITTED BY APPLICABLE LAW, BROADCOM PROVIDES THIS * SOFTWARE WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT * LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL BROADCOM * BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR * DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS SOFTWARE, * INCLUDING WITHOUT LIMITATION, LOST PROFITS, BUSINESS * INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF BROADCOM IS * EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE. * */ class EndevorUserParserUtils { static validateUsers(rawUsers) { const validRecords = []; const invalidRecords = []; rawUsers.forEach((rawUser, index) => { try { validRecords.push(EndevorUserParserUtils.parseUserData(rawUser)); } catch (e) { invalidRecords.push({ row: index, data: rawUser, error: e.message, }); } }); if (invalidRecords.length > 0) { throw new imperative.ImperativeError({ msg: `Encountered ${invalidRecords.length} invalid user rows:\n${this.createLogString(invalidRecords)}`, }); } return validRecords; } static parseUserData(data) { const result = EndevorUserSchema.EndevorUserSchema.safeParse(data); if (result.success) { return result.data; } else { throw new Error(result.error.issues .map((issue) => `${issue.path.join(".")}: ${issue.message}`) .join(" | ")); } } static createLogString(invalidRecords) { return invalidRecords .map((record) => { const errorsStr = record.error; const dataStr = JSON.stringify(record.data); return `Row ${record.row + 1} - Errors: [${errorsStr}] - Data: ${dataStr}`; }) .join("\n"); } } exports.EndevorUserParserUtils = EndevorUserParserUtils;