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.
50 lines (42 loc) • 1.32 kB
text/typescript
import { Process, Activity, Task } from "made-lib-beta";
export class ActivityBuilder {
private activity: Partial<Activity>;
constructor() {
this.activity = {};
}
setId(id: string): ActivityBuilder {
this.activity.id = id;
return this;
}
setName(name: string): ActivityBuilder {
this.activity.name = name;
return this;
}
setDescription(description: string): ActivityBuilder {
this.activity.description = description;
return this;
}
setTasks(tasks: Task[]): ActivityBuilder {
if (!this.activity.tasks) {
this.activity.tasks = [];
}
this.activity.tasks.push(...tasks);
return this;
}
setDepends(dependencies: (Process | Activity | Task)[]): ActivityBuilder {
if (!this.activity.depends) {
this.activity.depends = [];
}
this.activity.depends.push(...dependencies);
return this;
}
build(): Activity {
if (!this.activity.name) {
throw new Error("Activity name is required");
}
if (!this.activity.description) {
throw new Error("Activity description is required");
}
return this.activity as Activity;
}
}