MCPcopy Index your code
hub / github.com/Effect-TS/effect / layer

Function layer

packages/opentelemetry/src/WebSdk.ts:70–101  ·  view source on GitHub ↗
(
  evaluate: LazyArg<Configuration> | Effect.Effect<Configuration, any, any>
)

Source from the content-addressed store, hash-verified

68 (evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>
69 <E, R>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>
70} = (
71 evaluate: LazyArg<Configuration> | Effect.Effect<Configuration, any, any>
72): Layer.Layer<Resource.Resource> =>
73 Layer.unwrapEffect(
74 Effect.map(
75 Effect.isEffect(evaluate)
76 ? evaluate as Effect.Effect<Configuration>
77 : Effect.sync(evaluate),
78 (config) => {
79 const ResourceLive = Resource.layer(config.resource)
80
81 const TracerLive = isNonEmpty(config.spanProcessor)
82 ? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig))
83 : Layer.empty
84
85 const LoggerLive = isNonEmpty(config.logRecordProcessor)
86 ? Layer.provide(
87 Logger.layerLoggerAdd,
88 Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)
89 )
90 : Layer.empty
91
92 const MetricsLive = isNonEmpty(config.metricReader)
93 ? Metrics.layer(constant(config.metricReader))
94 : Layer.empty
95
96 return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(
97 Layer.provideMerge(ResourceLive)
98 )
99 }
100 )
101 )

Callers

nothing calls this directly

Calls 7

constantFunction · 0.85
syncMethod · 0.80
layerTracerProviderFunction · 0.70
mapMethod · 0.65
provideMethod · 0.65
pipeMethod · 0.65
isNonEmptyFunction · 0.50

Tested by

no test coverage detected