@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
JavaScript
;
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;