@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
58 lines (56 loc) • 2.12 kB
JavaScript
;
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