UNPKG

singularci

Version:

SingularCI is a DSL transpiler used to generate CI/CD configuration files for existing CI platforms

38 lines (32 loc) 912 B
import ITargets from "./interfaces/ITargets"; import { Service } from "typedi"; @Service({ id: "TargetsFactory" }) export class TargetsFactory { createTargets(): ITargets { return new Targets(); } } @Service({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); } }