/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/core/src/effect/app-node-builder.ts
23 строки
1 KB
James Long
refactor(core): refine layer node replacements (#34377)
29 июн 2026, 06:48
Не верифицирован
29 июн 2026, 06:48
84336e4
Код
Авторство
О чём код?
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"