singularci
Version:
SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms
38 lines (32 loc) • 912 B
text/typescript
import ITargets from "./interfaces/ITargets";
import { Service } from "typedi";
({ id: "TargetsFactory" })
export class TargetsFactory {
createTargets(): ITargets {
return new Targets();
}
}
({id:'Targets'})
class Targets implements ITargets {
private acceptedTargets = [
"GitHub",
"GitLab",
]
private targets: string[] = [];
addTarget(target:string){
if (this.isTargetValid(target)) {
this.targets.push(target);
} else {
throw new Error(`${target} is defined multiple times or invalid`);
}
}
getTargets(): string[] {
return this.targets;
}
reset() {
this.targets = [];
}
private isTargetValid(target: string): boolean{
return this.acceptedTargets.includes(target) && !this.targets.includes(target);
}
}