UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

58 lines (56 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObservableThrowUpdater = void 0; const common_1 = require("../../../common"); const logger_1 = require("../../utils/logger"); /** * the ObservableThrowUpdater error handler/updater. */ class ObservableThrowUpdater { /** * the update function. * @param fileData the file data. * @param error the error object. * @returns the updated file data. */ update(fileData, error) { if (!fileData) { logger_1.Logger.error(`Cannot find file data`); } const result = this.regexFixer(fileData); error.resolved = common_1.ResolveState.Resolved; return new Promise(resolve => resolve(result)); } /** * the update function. * @param inputString the input file data string. * @returns the updated file data string. */ regexFixer(inputString) { /** * const inputString = "return Observable.throw(new Error(this.strings.exportInvalidPath.format(currentChannelName)));"; * to * const inputString = "return Observable.throw(() => new Error(this.strings.exportInvalidPath.format(currentChannelName)));"; **/ function replaceObservableThrow(_match, p1) { return `return throwError(() => (${p1}));`; } const regexPattern = /return\s+Observable\.throw\((new Error\(.*?\))\);/; const replacedString = inputString.replace(regexPattern, replaceObservableThrow); return this.importFixer(replacedString); } /** * the importFixer function. * @param inputString the input file data string. * @returns the updated file data string. */ importFixer(inputString) { const importStatement = "import { throwError } from 'rxjs';\n"; if (!inputString.includes(importStatement)) { inputString = "import { throwError } from 'rxjs';\n" + inputString; } return inputString; } } exports.ObservableThrowUpdater = ObservableThrowUpdater; //# sourceMappingURL=observable-throw-updater.js.map