{"version":3,"sources":["../../../packages/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE;;GAEG;AACH,qBAAa,sBAAuB,YAAW,OAAO;IAClD;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAiBlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAQtB","file":"observable-throw-updater.d.ts","sourcesContent":["import { ResolveState } from '../../../common';\r\nimport { Updater } from '../../../upgrade/models/updater-interface';\r\nimport { ErrorResult } from '../../../upgrade/models/error-result';\r\nimport { Logger } from '../../utils/logger';\r\n\r\n/**\r\n * the ObservableThrowUpdater error handler/updater.\r\n */\r\nexport class ObservableThrowUpdater implements Updater {\r\n    /**\r\n     * the update function.\r\n     * @param fileData the file data.\r\n     * @param error the error object.\r\n     * @returns the updated file data.\r\n     */\r\n    public update(fileData: string, error: ErrorResult): Promise<string> {\r\n        if (!fileData) {\r\n            Logger.error(`Cannot find file data`);\r\n        }\r\n\r\n        const result = this.regexFixer(fileData);\r\n\r\n        error.resolved = ResolveState.Resolved;\r\n        return new Promise(resolve => resolve(result));\r\n    }\r\n\r\n    /**\r\n     * the update function.\r\n     * @param inputString the input file data string.\r\n     * @returns the updated file data string.\r\n     */\r\n    private regexFixer(inputString: string): string {\r\n        /**\r\n         * const inputString = \"return Observable.throw(new Error(this.strings.exportInvalidPath.format(currentChannelName)));\";\r\n         * to\r\n         * const inputString = \"return Observable.throw(() => new Error(this.strings.exportInvalidPath.format(currentChannelName)));\";\r\n         **/\r\n        function replaceObservableThrow(_match, p1) {\r\n            return `return throwError(() => (${p1}));`;\r\n        }\r\n\r\n        const regexPattern = /return\\s+Observable\\.throw\\((new Error\\(.*?\\))\\);/;\r\n\r\n        const replacedString = inputString.replace(regexPattern, replaceObservableThrow);\r\n\r\n        return this.importFixer(replacedString);\r\n    }\r\n\r\n    /**\r\n     * the importFixer function.\r\n     * @param inputString the input file data string.\r\n     * @returns the updated file data string.\r\n     */\r\n    private importFixer(inputString: string): string {\r\n        const importStatement = \"import { throwError } from 'rxjs';\\n\";\r\n        if (!inputString.includes(importStatement)) {\r\n            inputString = \"import { throwError } from 'rxjs';\\n\" + inputString;\r\n        }\r\n\r\n        return inputString;\r\n    }\r\n}\r\n"]}