MCPcopy
hub / github.com/stackblitz/alien-signals / link

Function link

src/system.ts:51–91  ·  view source on GitHub ↗
(dep: ReactiveNode, sub: ReactiveNode, version: number)

Source from the content-addressed store, hash-verified

49 };
50
51 function link(dep: ReactiveNode, sub: ReactiveNode, version: number): void {
52 const prevDep = sub.depsTail;
53 if (prevDep !== undefined && prevDep.dep === dep) {
54 return;
55 }
56 const nextDep = prevDep !== undefined ? prevDep.nextDep : sub.deps;
57 if (nextDep !== undefined && nextDep.dep === dep) {
58 nextDep.version = version;
59 sub.depsTail = nextDep;
60 return;
61 }
62 const prevSub = dep.subsTail;
63 if (prevSub !== undefined && prevSub.version === version && prevSub.sub === sub) {
64 return;
65 }
66 const newLink
67 = sub.depsTail
68 = dep.subsTail
69 = {
70 version,
71 dep,
72 sub,
73 prevDep,
74 nextDep,
75 prevSub,
76 nextSub: undefined,
77 };
78 if (nextDep !== undefined) {
79 nextDep.prevDep = newLink;
80 }
81 if (prevDep !== undefined) {
82 prevDep.nextDep = newLink;
83 } else {
84 sub.deps = newLink;
85 }
86 if (prevSub !== undefined) {
87 prevSub.nextSub = newLink;
88 } else {
89 dep.subs = newLink;
90 }
91 }
92
93 function unlink(link: Link, sub = link.sub): Link | undefined {
94 const { dep, prevDep, nextDep, nextSub, prevSub } = link;

Callers 4

effectFunction · 0.85
effectScopeFunction · 0.85
computedOperFunction · 0.85
signalOperFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…