From e568acab8d7aa2b4f4f87d50232c9ef1beeaae57 Mon Sep 17 00:00:00 2001 From: zFernand0 <37381190+zFernand0@users.noreply.github.com> Date: Fri, 8 Mar 2024 13:32:12 +0000 Subject: [PATCH] address VSCE breaking changes Signed-off-by: zFernand0 <37381190+zFernand0@users.noreply.github.com> --- CHANGELOG.md | 3 +-- src/api/CoreUtils.ts | 26 +++++--------------- src/api/DataSetUtils.ts | 11 +++------ src/api/UssUtils.ts | 3 +-- src/api/doc/DataSetInterface.ts | 4 ++- src/cli/download/data-set/DataSet.Handler.ts | 18 ++++++-------- src/cli/submit/data-set/DataSet.Handler.ts | 4 +-- src/cli/view/data-set/DataSet.Handler.ts | 4 +-- 8 files changed, 27 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b391f13..3b90534d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,9 +22,8 @@ All notable changes to the z/OS FTP Plug-in for Zowe CLI will be documented in t - Removed the following constants, interfaces, and other values: - `IGetSpoolFileOption.jobName` - `JobUtils.parseJobDetails` - - Added proper typing to the parameters of the following functions: - `CoreUtils.addLowerCaseKeysToObject` - - Return type changed: `any --> IDatasetEntry` + - Added proper typing to the parameters of the following functions: - `CreateDataset.create` - `DataSetUtils.listDataSets` - `FTPConfig.connectFromArguments` diff --git a/src/api/CoreUtils.ts b/src/api/CoreUtils.ts index ebb19e57..041d1031 100644 --- a/src/api/CoreUtils.ts +++ b/src/api/CoreUtils.ts @@ -11,8 +11,7 @@ import { ICommandProfileTypeConfiguration, IImperativeError, Logger } from "@zowe/imperative"; import * as stream from "stream"; -import { IDatasetEntry } from "./doc/DataSetInterface"; -import { ITransferMode, IUSSEntry } from "./doc"; +import { ITransferMode } from "./doc"; export class CoreUtils { @@ -71,19 +70,6 @@ export class CoreUtils { }); } - public static addLowerCaseKeysToObject(obj: IDatasetEntry | IUSSEntry): IDatasetEntry | IUSSEntry { - - const result: { [key: string]: string } = {}; - for (const key of Object.keys(obj)) { - // turn the object into a similar format to that returned by - // z/osmf so that users who use the list ds command in main - // zowe can use the same filtering options - this.log.trace("Remapping key for data set to match core CLI. Old key '%s' New key '%s'", key, key.toLowerCase()); - result[key.toLowerCase()] = obj[key]; - } - return result as typeof obj; - } - public static async getProfileMeta(): Promise { const ftpProfile = await require("../imperative").profiles as ICommandProfileTypeConfiguration[]; return ftpProfile; @@ -93,10 +79,10 @@ export class CoreUtils { return Logger.getAppLogger(); } - /** - * @internal - */ - public static getBinaryTransferModeOrDefault(isBinary: boolean): ITransferMode { - return (isBinary ? ITransferMode.BINARY : ITransferMode.ASCII) as unknown as ITransferMode; + public static getBinaryTransferModeOrDefault(isBinary: boolean, rdw = false): ITransferMode { + return (isBinary ? + (rdw ? ITransferMode.BINARY_RDW : ITransferMode.BINARY) : + (rdw ? ITransferMode.ASCII_RDW : ITransferMode.ASCII) + ) as unknown as ITransferMode; } } diff --git a/src/api/DataSetUtils.ts b/src/api/DataSetUtils.ts index b42895f3..9256bca8 100644 --- a/src/api/DataSetUtils.ts +++ b/src/api/DataSetUtils.ts @@ -13,7 +13,7 @@ import * as fs from "fs"; import { IO, Logger } from "@zowe/imperative"; import { CoreUtils } from "./CoreUtils"; -import { IAllocateDataSetOption, IDatasetEntry, IDownloadDataSetOption, IUploadDataSetOption } from "./doc/DataSetInterface"; +import { IAllocateDataSetOption, IDatasetEntry, IDatasetMemberEntry, IDownloadDataSetOption, IUploadDataSetOption } from "./doc/DataSetInterface"; import { StreamUtils } from "./StreamUtils"; import { TransferMode, ZosAccessor } from "zos-node-accessor"; import { ITransferMode, TRACK } from "./doc"; @@ -32,8 +32,7 @@ export class DataSetUtils { const files = await connection.listDatasets(pattern); this.log.debug("Found %d matching data sets", files.length); - const filteredFiles = files.map((file: IDatasetEntry) => CoreUtils.addLowerCaseKeysToObject(file)); - return filteredFiles as IDatasetEntry[]; + return files; } /** @@ -43,16 +42,14 @@ export class DataSetUtils { * @param dsn - fully-qualified dataset name without quotes * @returns member entries */ - public static async listMembers(connection: ZosAccessor, dsn: string): Promise { + public static async listMembers(connection: ZosAccessor, dsn: string): Promise { this.log.debug("List members of %s", dsn); const datasetname = dsn + "(*)"; const members = await connection.listDatasets(datasetname); this.log.debug("Found %d members", members.length); - const filteredMembers = members.map((file: IDatasetEntry) => CoreUtils.addLowerCaseKeysToObject(file)); - - return filteredMembers as IDatasetEntry[]; + return members; } /** diff --git a/src/api/UssUtils.ts b/src/api/UssUtils.ts index 34eee5ca..f957d18d 100644 --- a/src/api/UssUtils.ts +++ b/src/api/UssUtils.ts @@ -55,8 +55,7 @@ export class UssUtils { } this.log.debug("Found %d matching files", files.length); - const filteredFiles = files.map((file: IUSSEntry) => CoreUtils.addLowerCaseKeysToObject(file)); - return filteredFiles as IUSSEntry[]; + return files; } /** diff --git a/src/api/doc/DataSetInterface.ts b/src/api/doc/DataSetInterface.ts index 3b353139..b8d9cbdc 100644 --- a/src/api/doc/DataSetInterface.ts +++ b/src/api/doc/DataSetInterface.ts @@ -12,8 +12,10 @@ import { DatasetEntry } from "zos-node-accessor/lib/interfaces/DatasetEntry"; import { IFTPProgressHandler } from "./IFTPProgressHandler"; import { ITransferMode } from "./constants"; +import { DatasetMemberEntry } from "zos-node-accessor/lib/interfaces/DatasetMemberEntry"; export interface IDatasetEntry extends DatasetEntry {} +export interface IDatasetMemberEntry extends DatasetMemberEntry {} export interface IDownloadDataSetOption { /** @@ -29,7 +31,7 @@ export interface IDownloadDataSetOption { /** * TRANSFER_TYPE_ASCII, TRANSFER_TYPE_BIANRY, TRANSFER_TYPE_ASCII_RDW, or TRANSFER_TYPE_BINARY_RDW defined in CoreUtils. */ - transferType?: string; + transferType?: ITransferMode; /** * Optional encoding for download and upload of z/OS data set diff --git a/src/cli/download/data-set/DataSet.Handler.ts b/src/cli/download/data-set/DataSet.Handler.ts index 89245a4c..497d07ea 100644 --- a/src/cli/download/data-set/DataSet.Handler.ts +++ b/src/cli/download/data-set/DataSet.Handler.ts @@ -13,15 +13,16 @@ import { ZosFilesMessages, ZosFilesUtils } from "@zowe/cli"; import { FTPBaseHandler } from "../../../FTPBase.Handler"; import { IFTPHandlerParams } from "../../../IFTPHandlerParams"; import { FTPProgressHandler } from "../../../FTPProgressHandler"; -import { DataSetUtils, TRANSFER_TYPE_ASCII, TRANSFER_TYPE_ASCII_RDW, TRANSFER_TYPE_BINARY, TRANSFER_TYPE_BINARY_RDW } from "../../../api"; +import { CoreUtils, DataSetUtils } from "../../../api"; import { ImperativeError } from "@zowe/imperative"; import { Utilities } from "../../Utilities"; export default class DownloadDataSetHandler extends FTPBaseHandler { public async processFTP(params: IFTPHandlerParams): Promise { - const file = params.arguments.file == null ? - ZosFilesUtils.getDirsFromDataSet(params.arguments.dataSet) : - params.arguments.file; + const args = params.arguments; + const file = args.file == null ? + ZosFilesUtils.getDirsFromDataSet(args.dataSet) : + args.file; try { // Validate the destination file name before proceeding if (!(Utilities.isValidFileName(file))) { @@ -32,18 +33,15 @@ export default class DownloadDataSetHandler extends FTPBaseHandler { if (params.response && params.response.progress) { progress = new FTPProgressHandler(params.response.progress, true); } - let transferType = params.arguments.binary ? TRANSFER_TYPE_BINARY : TRANSFER_TYPE_ASCII; - if (params.arguments.rdw) { - transferType = params.arguments.binary ? TRANSFER_TYPE_BINARY_RDW : TRANSFER_TYPE_ASCII_RDW; - } + const transferType = CoreUtils.getBinaryTransferModeOrDefault(args.binary, args.rdw); const options = { localFile: file, response: params.response, transferType, progress, - encoding: params.arguments.encoding + encoding: args.encoding }; - await DataSetUtils.downloadDataSet(params.connection, params.arguments.dataSet, options); + await DataSetUtils.downloadDataSet(params.connection, args.dataSet, options); const successMsg = params.response.console.log(ZosFilesMessages.datasetDownloadedSuccessfully.message, file); this.log.info(successMsg); diff --git a/src/cli/submit/data-set/DataSet.Handler.ts b/src/cli/submit/data-set/DataSet.Handler.ts index 52b0869b..a9f1a847 100644 --- a/src/cli/submit/data-set/DataSet.Handler.ts +++ b/src/cli/submit/data-set/DataSet.Handler.ts @@ -11,13 +11,13 @@ import { IFTPHandlerParams } from "../../../IFTPHandlerParams"; import { SubmitJobHandler } from "../SubmitJobHandler"; -import { DataSetUtils, TRANSFER_TYPE_ASCII } from "../../../api"; +import { DataSetUtils, ITransferMode } from "../../../api"; export default class SubmitJobFromLocalFileHandler extends SubmitJobHandler { public async processFTP(params: IFTPHandlerParams): Promise { this.log.debug("Submitting a job from data set '%s'. Downloading before submitting...", params.arguments.dataSet); const options = { - transferType: TRANSFER_TYPE_ASCII, + transferType: ITransferMode.ASCII as unknown as ITransferMode, }; const dsContent = (await DataSetUtils.downloadDataSet(params.connection, params.arguments.dataSet, options)).toString(); this.log.debug("Downloaded data set '%s'. Submitting...", params.arguments.dataSet); diff --git a/src/cli/view/data-set/DataSet.Handler.ts b/src/cli/view/data-set/DataSet.Handler.ts index bd2872da..87a99686 100644 --- a/src/cli/view/data-set/DataSet.Handler.ts +++ b/src/cli/view/data-set/DataSet.Handler.ts @@ -11,13 +11,13 @@ import { IFTPHandlerParams } from "../../../IFTPHandlerParams"; import { FTPBaseHandler } from "../../../FTPBase.Handler"; -import { DataSetUtils, TRANSFER_TYPE_ASCII, TRANSFER_TYPE_BINARY } from "../../../api"; +import { CoreUtils, DataSetUtils } from "../../../api"; export default class ViewDataSetHandler extends FTPBaseHandler { public async processFTP(params: IFTPHandlerParams): Promise { const options = { - transferType: params.arguments.binary ? TRANSFER_TYPE_BINARY : TRANSFER_TYPE_ASCII, + transferType: CoreUtils.getBinaryTransferModeOrDefault(params.arguments.binary), response: params.response, encoding: params.arguments.encoding };