@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
1 lines • 4.03 kB
Source Map (JSON)
{"version":3,"sources":["../../../packages/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,OAAO;IAC9C;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAgDrB","file":"form-control-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 * Updater for FormControl errors.\r\n */\r\nexport class FormControlUpdater 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 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 * Fixe file data by regex matching.\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 /**\r\n * clusterName: new FormControl({ value: this.model.platformSettings.kvaName }),\r\n * to\r\n * clusterName: new FormControl(this.model.platformSettings.kvaName),\r\n *\r\n * controlPlaneReplicaCount: new FormControl(\r\n * { value: this.model.workloadClusterConfiguration.controlPlaneReplicaCount })\r\n * to\r\n * controlPlaneReplicaCount: new FormControl(this.model.workloadClusterConfiguration.controlPlaneReplicaCount)\r\n *\r\n *\r\n * useUsernameAndPassword: new FormControl({\r\n * value: this.useUsernameAndPassword || !!(\r\n * this.model.proxySettings.password || this.model.proxySettings.username)\r\n * }),\r\n * to\r\n * useUsernameAndPassword: new FormControl(this.useUsernameAndPassword || !!(\r\n * this.model.proxySettings.password || this.model.proxySettings.username)\r\n * ),\r\n */\r\n const valueOnlyRegex2 = /new[\\s\\n]*FormControl\\([\\s\\n]*\\{[\\s\\n]*value:[\\s\\n]*([^,\\}]+)[\\s\\n]*\\}[\\s\\n]*\\)/g;\r\n const valueOnlyTarget = 'new FormControl($1)'\r\n\r\n const valueOnlyRegex = /new[\\s\\n]*FormControl\\([\\s\\n]*\\{[\\s\\n]*value:[\\s\\n]*([^,\\}\\s]+)[\\s\\n]*\\}[\\s\\n]*\\)/g;\r\n\r\n const requiredRegex = /new[\\s\\n]*FormControl\\([\\s\\n]*\\{[\\s\\n]*value:[\\s\\n]*([^,]+),[\\s\\n]*disabled:[\\s\\n]*true,[\\s\\n]*required:[\\s\\n]*true[\\s\\n]*\\}[\\s\\n]*\\)/g;\r\n const requiredTarget = 'new FormControl($1, Validators.required)';\r\n\r\n const valueOnlyRegexValid = valueOnlyRegex.test(inputString);\r\n const requiredRegexValid = requiredRegex.test(inputString);\r\n if (valueOnlyRegexValid) {\r\n inputString = inputString.replace(valueOnlyRegex, valueOnlyTarget);\r\n inputString = inputString.replace(valueOnlyRegex2, valueOnlyTarget);\r\n }\r\n if (requiredRegexValid) {\r\n inputString = inputString.replace(requiredRegex, requiredTarget);\r\n\r\n if (!inputString.includes('import { Validators } from \\'@angular/forms\\';')) {\r\n inputString = 'import { Validators } from \\'@angular/forms\\';\\n' + inputString;\r\n }\r\n }\r\n if (!valueOnlyRegexValid && !requiredRegexValid) {\r\n Logger.log('no-op')\r\n }\r\n\r\n return inputString;\r\n }\r\n}\r\n"]}