@svar-ui/lib-schedule
v0.4.3
Published
@wx/lib-schedule provides helpers for tash/graph operations
Downloads
120
Readme
@wx/lib-schedule
@wx/lib-schedule provides helpers for tash/graph operations
Scheduling
The library provides the updateForward API for propagating schedule changes through task dependencies.
Main Usage Scenarios
1. Task Date or Duration Changes
When a task's start date or duration is modified, use updateForward to propagate the changes through the dependency graph:
import { updateForwardTask } from "@wx/lib-schedule";
const result = updateForwardTask(graph, taskId, newStartDate, newDuration);The scheduler will automatically update all dependent tasks to maintain link constraints.
2. Link Changes
When links in the graph are added, removed, or modified, use updateForward with the force: true config option to recalculate violations even if the task itself hasn't changed:
const result = updateForwardTask(graph, taskId, undefined, undefined, {
force: true,
});This triggers a scheduling pass that checks and propagates link violations without requiring the initial node to be modified, enabling detection and correction of existing constraint violations.
3. Whole-Graph Rescheduling
To reschedule the entire graph and validate all constraints, start from the project start virtual node with the cascade: true option:
const result = updateForwardTask(graph, 0, undefined, undefined, {
force: true,
cascade: true,
});By default, propagation stops when reaching nodes already in valid positions. The cascade option continues checking links past such nodes, enabling complete graph validation and constraint propagation.
Running Tests
npm run test:runWorking with code
- use npm
npm installnpm run buildnpm run test
