diff --git a/packages/components/add-provider/package.json b/packages/components/add-provider/package.json index 0002e2c..bf5fceb 100644 --- a/packages/components/add-provider/package.json +++ b/packages/components/add-provider/package.json @@ -9,7 +9,6 @@ "dependencies": { "@echo/core-types": "^1.0.0", "@echo/services-bootstrap": "^1.0.0", - "@echo/services-bootstrap-services": "^1.0.0", "@echo/services-add-provider-workflow": "^1.0.0", "@effect-rx/rx": "^0.33.8", "@effect-rx/rx-react": "^0.30.11", diff --git a/packages/components/add-provider/src/AddProvider.tsx b/packages/components/add-provider/src/AddProvider.tsx index dc9dfdc..f4ade4f 100644 --- a/packages/components/add-provider/src/AddProvider.tsx +++ b/packages/components/add-provider/src/AddProvider.tsx @@ -5,14 +5,14 @@ import { type ProviderMetadata, } from "@echo/core-types"; import { AddProviderWorkflowLive } from "@echo/services-add-provider-workflow"; -import { AppLive } from "@echo/services-bootstrap-services"; +import { MainLive } from "@echo/services-bootstrap"; import { Rx } from "@effect-rx/rx"; import { useRx } from "@effect-rx/rx-react"; import { Layer, Match } from "effect"; import { useCallback } from "react"; const runtime = Rx.runtime( - AddProviderWorkflowLive.pipe(Layer.provide(AppLive)), + AddProviderWorkflowLive.pipe(Layer.provide(MainLive)), ); const loadProviderFn = runtime.fn(AddProviderWorkflow.loadProvider); const connectToProviderFn = runtime.fn(AddProviderWorkflow.connectToProvider); diff --git a/packages/components/library/package.json b/packages/components/library/package.json index 887e751..715d0b1 100644 --- a/packages/components/library/package.json +++ b/packages/components/library/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@echo/core-types": "^1.0.0", - "@echo/services-bootstrap-services": "^1.0.0", + "@echo/services-bootstrap": "^1.0.0", "@echo/services-library": "^1.0.0", "@echo/services-player": "^1.0.0", "@effect-rx/rx": "^0.33.8", diff --git a/packages/components/library/src/Library.tsx b/packages/components/library/src/Library.tsx index a26cf70..dd1a6ac 100644 --- a/packages/components/library/src/Library.tsx +++ b/packages/components/library/src/Library.tsx @@ -1,5 +1,5 @@ import { Library, Player } from "@echo/core-types"; -import { AppLive } from "@echo/services-bootstrap-services"; +import { MainLive } from "@echo/services-bootstrap"; import { Rx } from "@effect-rx/rx"; import { Layer, Stream } from "effect"; import { Suspense } from "react"; @@ -8,7 +8,7 @@ import { PlayerLive } from "@echo/services-player"; import { useRx, useRxSuspenseSuccess } from "@effect-rx/rx-react"; const runtime = Rx.runtime( - Layer.mergeAll(LibraryLive, PlayerLive).pipe(Layer.provide(AppLive)), + Layer.mergeAll(LibraryLive, PlayerLive).pipe(Layer.provide(MainLive)), ); const observeLibrary = runtime.rx(Stream.unwrap(Library.observeAlbums())); const playAlbumFn = runtime.fn(Player.playAlbum); diff --git a/packages/components/provider-status/package.json b/packages/components/provider-status/package.json index 4c762e3..661ea0a 100644 --- a/packages/components/provider-status/package.json +++ b/packages/components/provider-status/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@echo/core-types": "^1.0.0", - "@echo/services-bootstrap-services": "^1.0.0", + "@echo/services-bootstrap": "^1.0.0", "@effect-rx/rx": "^0.33.8", "@effect-rx/rx-react": "^0.30.11", "effect": "^3.6.5" diff --git a/packages/components/provider-status/src/ProviderStatus.tsx b/packages/components/provider-status/src/ProviderStatus.tsx index 93157ac..568ee3f 100644 --- a/packages/components/provider-status/src/ProviderStatus.tsx +++ b/packages/components/provider-status/src/ProviderStatus.tsx @@ -1,10 +1,10 @@ -import { AppLive } from "@echo/services-bootstrap-services"; +import { MainLive } from "@echo/services-bootstrap"; import { Rx } from "@effect-rx/rx"; import { Match } from "effect"; import { useRxValue } from "@effect-rx/rx-react"; import { MediaProviderStatus } from "@echo/core-types"; -const runtime = Rx.runtime(AppLive); +const runtime = Rx.runtime(MainLive); const providerStatus = runtime.subscriptionRef(MediaProviderStatus.observe); diff --git a/packages/services/bootstrap-services/index.ts b/packages/services/bootstrap-services/index.ts deleted file mode 100644 index 47e5f0e..0000000 --- a/packages/services/bootstrap-services/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./src/app-live.layer"; diff --git a/packages/services/bootstrap-services/package.json b/packages/services/bootstrap-services/package.json deleted file mode 100644 index 55027ab..0000000 --- a/packages/services/bootstrap-services/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "@echo/services-bootstrap-services", - "private": true, - "version": "1.0.0", - "description": "Exposes a shared service layer that includes services that should only be initialized once", - "main": "index.js", - "scripts": { - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "@echo/core-types": "^1.0.0", - "@echo/services-bootstrap": "^1.0.0", - "@echo/services-active-media-provider-cache": "^1.0.0", - "@echo/services-media-provider-status": "^1.0.0", - "effect": "^3.6.5" - } -} \ No newline at end of file diff --git a/packages/services/bootstrap-services/src/app-live.layer.ts b/packages/services/bootstrap-services/src/app-live.layer.ts deleted file mode 100644 index dfd6e9d..0000000 --- a/packages/services/bootstrap-services/src/app-live.layer.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ActiveMediaProviderCacheLive } from "@echo/services-active-media-provider-cache"; -import { MediaProviderStatusLive } from "@echo/services-media-provider-status"; -import { MainLive } from "@echo/services-bootstrap"; -import { Layer } from "effect"; - -/** - * Main layer to be used in the app thread that includes all infrastructure - * dependencies of the main layer and a set of core services that should only - * be initialized once. - */ -export const AppLive = Layer.mergeAll( - ActiveMediaProviderCacheLive, - MediaProviderStatusLive, -).pipe(Layer.provideMerge(MainLive)); diff --git a/packages/services/bootstrap-services/src/vite-env.d.ts b/packages/services/bootstrap-services/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/packages/services/bootstrap-services/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/services/bootstrap-services/tsconfig.json b/packages/services/bootstrap-services/tsconfig.json deleted file mode 100644 index 6953ff5..0000000 --- a/packages/services/bootstrap-services/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "include": [ - "src", - "index.ts" - ] -} \ No newline at end of file diff --git a/packages/services/bootstrap/package.json b/packages/services/bootstrap/package.json index 0340ce4..f0b1393 100644 --- a/packages/services/bootstrap/package.json +++ b/packages/services/bootstrap/package.json @@ -16,6 +16,8 @@ "@echo/infrastructure-mmb-metadata-provider": "^1.0.0", "@echo/infrastructure-html-audio-media-player": "^1.0.0", "@echo/infrastructure-onedrive-provider": "^1.0.0", + "@echo/services-active-media-provider-cache": "^1.0.0", + "@echo/services-media-provider-status": "^1.0.0", "@echo/workers-media-provider": "^1.0.0", "effect": "^3.6.5" } diff --git a/packages/services/bootstrap/src/layers.ts b/packages/services/bootstrap/src/layers.ts index 5453cf8..d681725 100644 --- a/packages/services/bootstrap/src/layers.ts +++ b/packages/services/bootstrap/src/layers.ts @@ -9,16 +9,20 @@ import { MmbMetadataProviderLive } from "@echo/infrastructure-mmb-metadata-provi import { LazyLoadedProviderLive } from "./loaders/provider"; import { AppConfigLive } from "./app-config"; import { LazyLoadedMediaPlayerLive } from "./loaders/player"; +import { ActiveMediaProviderCacheLive } from "@echo/services-active-media-provider-cache"; +import { MediaProviderStatusLive } from "@echo/services-media-provider-status"; /** * Exports a layer that can provide all dependencies that are needed in the * main thread (web-app). */ -export const MainLive = MediaProviderMainThreadBroadcastChannelLive.pipe( +export const MainLive = ActiveMediaProviderCacheLive.pipe( + Layer.provideMerge(MediaProviderStatusLive), + Layer.provideMerge(MediaProviderMainThreadBroadcastChannelLive), Layer.provideMerge(MediaProviderWorkerBroadcastChannelLive), - Layer.provideMerge(BrowserCryptoLive), Layer.provideMerge(LazyLoadedProviderLive), Layer.provideMerge(LazyLoadedMediaPlayerLive), + Layer.provideMerge(BrowserCryptoLive), Layer.provideMerge(DexieDatabaseLive), Layer.provideMerge(AppConfigLive), Layer.provide(Logger.pretty),