MCPcopy Create free account
hub / github.com/anomalyco/opencode / replacementNode

Function replacementNode

packages/core/src/effect/layer-node.ts:135–151  ·  view source on GitHub ↗
(source: AnyNode, replacement: AnyNode | Layer.Any)

Source from the content-addressed store, hash-verified

133type ValidReplacements<Items extends Replacements> = Items & CheckReplacements<Items>
134
135function replacementNode(source: AnyNode, replacement: AnyNode | Layer.Any) {
136 const replacementNode = isNode(replacement)
137 ? replacement
138 : make({
139 ...nodeMakeIdentity(source),
140 layer: replacement as Layer.Layer<unknown, unknown>,
141 deps: [],
142 tag: source.tag,
143 })
144 if (source.name !== replacementNode.name) {
145 throw new Error(`Cannot replace ${source.name} with ${replacementNode.name}`)
146 }
147 if (source.tag !== replacementNode.tag) {
148 throw new Error(`Cannot replace ${source.name} across tags`)
149 }
150 return replacementNode
151}
152
153function nodeMakeIdentity(node: AnyNode): NodeIdentity {
154 if (node.service !== undefined) return { service: node.service }

Callers 1

replacementMapFromFunction · 0.85

Calls 3

isNodeFunction · 0.85
nodeMakeIdentityFunction · 0.85
makeFunction · 0.70

Tested by

no test coverage detected