1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { Engine } from '../model/Engine'; 17import { FixMode } from '../model/Fix'; 18import { AIFixEngine } from './engines/AIFixEngine'; 19import { EsLintFixEngine } from './engines/EsLintFixEngine'; 20import { HomeCheckFixEngine } from './engines/HomeCheckFixEngine'; 21 22export class FixEngine { 23 public getEngine(mode: FixMode): Engine { 24 if (mode === FixMode.AST) { 25 return new EsLintFixEngine(); 26 } else if (mode === FixMode.ARKFILE) { 27 return new HomeCheckFixEngine(); 28 } else if (mode === FixMode.AI) { 29 return new AIFixEngine(); 30 } 31 throw TypeError(`${mode} does not support!`); 32 } 33} 34