Download packages/core/src/effect/app-node-builder.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.09 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/core/src/effect/app-node-builder.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/core/src/effect/app-node-builder.ts
-
curl -L -o app-node-builder.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/core/src/effect/app-node-builder.ts
1.09 kB
| import { buildLocationServiceMap } from "../location-services" | |
| import { LocationServiceMap } from "../location-service-map" | |
| import { LayerNode } from "./layer-node" | |
| import { makeGlobalNode } from "./app-node" | |
| export function build<A, E>(root: LayerNode.Node<A, E, any>, replacements: LayerNode.Replacements = []) { | |
| let allReplacements = replacements | |
| // Only build the location service map if it's actually needed | |
| if (LayerNode.hasUnbound(root, LocationServiceMap.node) && !hasReplacement(replacements, LocationServiceMap.node)) { | |
| const locationMap = buildLocationServiceMap(replacements) | |
| const locationMapNode = makeGlobalNode({ service: LocationServiceMap.Service, layer: locationMap, deps: [] }) | |
| allReplacements = replacements.concat([[LocationServiceMap.node, locationMapNode]]) | |
| } | |
| return LayerNode.compile(root, allReplacements) | |
| } | |
| function hasReplacement(replacements: LayerNode.Replacements, node: LayerNode.Node<unknown, unknown, any>) { | |
| return replacements.some(([source]) => source.name === node.name) | |
| } | |
| export * as AppNodeBuilder from "./app-node-builder" | |