Skip to content

Commit 9866be2

Browse files
convert services to Effect.Service
1 parent 092e0f1 commit 9866be2

File tree

3 files changed

+16
-24
lines changed

3 files changed

+16
-24
lines changed

src/BuildPokeApiUrl.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
import { Context, Effect, Layer } from "effect";
1+
import { Effect } from "effect";
22
import { PokeApiUrl } from "./PokeApiUrl";
33

4-
export class BuildPokeApiUrl extends Context.Tag("BuildPokeApiUrl")<
5-
BuildPokeApiUrl,
6-
({ name }: { name: string }) => string
7-
>() {
8-
static readonly Live = Layer.effect(
9-
this,
10-
Effect.gen(function* () {
4+
export class BuildPokeApiUrl extends Effect.Service<BuildPokeApiUrl>()(
5+
"BuildPokeApiUrl",
6+
{
7+
effect: Effect.gen(function* () {
118
const pokeApiUrl = yield* PokeApiUrl;
12-
return ({ name }) => `${pokeApiUrl}/${name}`;
13-
})
14-
).pipe(Layer.provide(PokeApiUrl.Live));
15-
}
9+
return ({ name }: { name: string }) => `${pokeApiUrl}/${name}`;
10+
}),
11+
dependencies: [PokeApiUrl.Live],
12+
}
13+
) {}

src/PokeApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@ export class PokeApi extends Effect.Service<PokeApi>()("PokeApi", {
3232
}),
3333
};
3434
}),
35-
dependencies: [PokemonCollection.Live, BuildPokeApiUrl.Live],
35+
dependencies: [PokemonCollection.Default, BuildPokeApiUrl.Default],
3636
}) {}

src/PokemonCollection.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
import { Context, Layer, type Array } from "effect";
1+
import { Effect } from "effect";
22

3-
export class PokemonCollection extends Context.Tag("PokemonCollection")<
4-
PokemonCollection,
5-
Array.NonEmptyArray<string>
6-
>() {
7-
static readonly Live = Layer.succeed(this, [
8-
"staryu",
9-
"perrserker",
10-
"flaaffy",
11-
]);
12-
}
3+
export class PokemonCollection extends Effect.Service<PokemonCollection>()(
4+
"PokemonCollection",
5+
{ succeed: ["staryu", "perrserker", "flaaffy"] }
6+
) {}

0 commit comments

Comments
 (0)