import { MetadataProvider } from "@echo/core-types";
import { Effect, Layer } from "effect";
export const lazyLoadMetadataProvider = Effect.promise(async () => {
const { mmbMetadataProvider } = await import(
"@echo/infrastructure-mmb-metadata-provider"
);
return mmbMetadataProvider;
});
export const LazyLoadedMetadataProviderLive = Layer.effect(
MetadataProvider,
lazyLoadMetadataProvider.pipe(
Effect.tap((provider) => {
console.log("Layer has resolved", provider);
}),
Effect.tapError((error) => {
console.error("Uh, oh", error);
return Effect.fail(error);
}),
),
);
import { MetadataProvider } from "@echo/core-types";
import { Effect, Layer } from "effect";
export const lazyLoadMetadataProvider = Effect.promise(async () => {
const { mmbMetadataProvider } = await import(
"@echo/infrastructure-mmb-metadata-provider"
);
return mmbMetadataProvider;
});
export const LazyLoadedMetadataProviderLive = Layer.effect(
MetadataProvider,
lazyLoadMetadataProvider.pipe(
Effect.tap((provider) => {
console.log("Layer has resolved", provider);
}),
Effect.tapError((error) => {
console.error("Uh, oh", error);
return Effect.fail(error);
}),
),
);