UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

1 lines 2.29 kB
{"version":3,"sources":["../../../packages/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE;;GAEG;AACH,qBAAa,cAAc;IACvB;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;IAW3D;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAsBrB","file":"iif-updater-util.d.ts","sourcesContent":["import { ResolveState } from '../../../common';\r\nimport { ErrorResult } from '../../../upgrade/models/error-result';\r\nimport { Logger } from '../../utils/logger';\r\n\r\n/**\r\n * Updater for iif errors.\r\n */\r\nexport class IiFUpdaterUtil {\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): 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 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 {\r\n const regexPattern = /iif\\s*\\(\\s*((?:[^,\\r\\n]+|\\([^)]*\\))*)(?:\\s*,\\s*((?:[^,\\r\\n]+|\\([^)]*\\))*))?(?:\\s*,\\s*((?:[^,\\r\\n]+|\\([^)]*\\))))?\\s*\\)/g;\r\n\r\n Logger.error(regexPattern.test(inputString).toString());\r\n\r\n const replacedCode = inputString.replace(regexPattern, (match, condition, valueIfTrue, valueIfFalse) => {\r\n Logger.log('match: ' + match);\r\n if (valueIfTrue === undefined && valueIfFalse === undefined) {\r\n Logger.log('added valueIfTrue and valueIfFalse');\r\n return `iif(${condition}, of(null), of(null))`;\r\n }\r\n if (valueIfFalse === undefined) {\r\n Logger.log('added valueIfFalse');\r\n return `iif(${condition}, ${valueIfTrue}, of(null))`;\r\n }\r\n\r\n Logger.log('no-op');\r\n return match;\r\n });\r\n\r\n return replacedCode;\r\n }\r\n}\r\n"]}