import { Injectable } from '@angular/core'; import { ConfigService } from '@arrow/bom/config'; import { ArrowPackageValidator } from './arrow-packaging-validator'; import { PackageValidator } from './packaging-validator'; import { MyArrowPackageValidator } from './myarrow-packaging-validator'; @Injectable({ providedIn: "root" }) export class PackageValidatorFactory { constructor(private _configService: ConfigService) {} getValidator(): PackageValidator { const target = this._configService.getTarget(); switch (target) { case this._configService.MY_ARROW_KEY: return new MyArrowPackageValidator(this._configService); case this._configService.ARROW_COM_KEY || this._configService.ARROW_KEY: return new ArrowPackageValidator(this._configService); default: throw new Error('Unknown target'); } } }