Layer.effect(DynamoDBDocumentService, makeDynamoDBDocumentService).pipe(
Layer.provide(
Layer.effect(
DynamoDBDocumentClientInstance.DynamoDBDocumentClientInstance,
Effect.gen(function* () {
const xrayTracer = yield* Tracer.XrayTracer
const config = yield* DynamoDBServiceConfig.toDynamoDBClientConfig
const awsClient = xrayTracer.captureAWSv3Client(new DynamoDBClient(config))
if (awsClient === undefined)
return yield* Effect.die(new Error("Failed to initialise traced dynamo client"))
return DynamoDBDocumentClient.from(awsClient)
}),
),
),
)
Layer.effect(DynamoDBDocumentService, makeDynamoDBDocumentService).pipe(
Layer.provide(
Layer.effect(
DynamoDBDocumentClientInstance.DynamoDBDocumentClientInstance,
Effect.gen(function* () {
const xrayTracer = yield* Tracer.XrayTracer
const config = yield* DynamoDBServiceConfig.toDynamoDBClientConfig
const awsClient = xrayTracer.captureAWSv3Client(new DynamoDBClient(config))
if (awsClient === undefined)
return yield* Effect.die(new Error("Failed to initialise traced dynamo client"))
return DynamoDBDocumentClient.from(awsClient)
}),
),
),
)