"use strict"; // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.LegacyAdapters = void 0; /** * Helper functions used when interacting with APIs that do not follow modern coding practices. * @public */ class LegacyAdapters { static convertCallbackToPromise(fn, arg1, arg2, arg3, arg4) { return new Promise((resolve, reject) => { const cb = (error, result) => { if (error) { reject(LegacyAdapters.scrubError(error)); } else { resolve(result); } }; try { if (arg1 !== undefined && arg2 !== undefined && arg3 !== undefined && arg4 !== undefined) { fn(arg1, arg2, arg3, arg4, cb); } else if (arg1 !== undefined && arg2 !== undefined && arg3 !== undefined) { fn(arg1, arg2, arg3, cb); } else if (arg1 !== undefined && arg2 !== undefined) { fn(arg1, arg2, cb); } else if (arg1 !== undefined) { fn(arg1, cb); } else { fn(cb); } } catch (e) { reject(e); } }); } /** * Normalizes an object into an `Error` object. */ // eslint-disable-next-line @typescript-eslint/no-explicit-any static scrubError(error) { if (error instanceof Error) { return error; } else if (typeof error === 'string') { return new Error(error); } else { const errorObject = new Error('An error occurred.'); errorObject.errorData = error; // eslint-disable-line @typescript-eslint/no-explicit-any return errorObject; } } /** * Prior to Node 11.x, the `Array.sort()` algorithm is not guaranteed to be stable. * If you need a stable sort, you can use `sortStable()` as a workaround. * * @deprecated * Use native Array.sort(), since Node < 14 is no longer supported * @remarks * On NodeJS 11.x and later, this method simply calls the native `Array.sort()`. */ static sortStable(array, compare) { Array.prototype.sort.call(array, compare); } } exports.LegacyAdapters = LegacyAdapters; //# sourceMappingURL=LegacyAdapters.js.map