UNPKG

1.31 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Node = exports.STATE_DONE = exports.STATE_PENDING = exports.STATE_IN_PROGRESS = exports.STATE_DIRTY = void 0;
4exports.STATE_DIRTY = 'dirty';
5exports.STATE_IN_PROGRESS = 'in-progress';
6exports.STATE_PENDING = 'pending';
7exports.STATE_DONE = 'done';
8/**
9 * A Node in the {@link BuildGraph}.
10 */
11class Node {
12 constructor(url) {
13 this.url = url;
14 this.state = '';
15 this._dependents = new Set();
16 this._dependees = new Set();
17 }
18 filter(by) {
19 return [...this._dependents].filter(by);
20 }
21 find(by) {
22 return [...this._dependents].find(by);
23 }
24 some(by) {
25 return [...this._dependents].some(by);
26 }
27 get dependents() {
28 return this._dependents;
29 }
30 get dependees() {
31 return this._dependees;
32 }
33 dependsOn(dependent) {
34 const newDeps = Array.isArray(dependent) ? dependent : [dependent];
35 for (const newDep of newDeps) {
36 if (newDep._dependees.has(this)) {
37 // nodes already depends on each other
38 continue;
39 }
40 newDep._dependees.add(this);
41 this._dependents.add(newDep);
42 }
43 }
44}
45exports.Node = Node;
46//# sourceMappingURL=node.js.map
\No newline at end of file