made-beta
Version:
It allows you to create tasks in your project manager (e.g., Github) automatically based on predefined processes. Additionally, it generates documentation based on the project.
36 lines (29 loc) • 938 B
text/typescript
import { Roadmap, Milestone} from "made-lib-beta";
export class RoadmapBuilder {
private roadmap: Partial<Roadmap>;
constructor() {
this.roadmap = {};
}
setId(id: string): RoadmapBuilder {
this.roadmap.id = id;
return this;
}
setName(name: string): RoadmapBuilder {
this.roadmap.name = name;
return this;
}
setDescription(description: string): RoadmapBuilder {
this.roadmap.description = description;
return this;
}
async setMilestones(processMilestones: () => Promise<Milestone[]>): Promise<RoadmapBuilder> {
this.roadmap.milestones = await processMilestones();
return this;
}
build(): Roadmap {
if (!this.roadmap.id || !this.roadmap.name) {
throw new Error("Roadmap must have an ID and a name.");
}
return this.roadmap as Roadmap;
}
}