Effect CommunityEC
Effect Community2mo ago
4 replies
Loid

Confusion About Creating Service: Comparing Two Code Snippets

Hey guys I am still confuse about creating service. is those 2 code snippet result in same thing ?
or is it different. if it is different which one should I use when creating service
const getUserByApplicationId = Effect.fn("getUserByApplicationId")(function* (
    applicationId: string,
) {
    {
        const db = yield* DatabaseService;

        // rest of code
    }
});
export class UserRepository extends Effect.Service<UserRepository>()(
    "service/auth/modules/users/user.repository",
    {
        succeed: {
            getUserByApplicationId,
        },
        dependencies: [DatabaseLive],
    },
) {}


export class UserRepository extends Effect.Service<UserRepository>()(
    "service/auth/modules/users/user.repository",
    {
        effect: Effect.gen(function* () {
            const db = yield* DatabaseService;

            const getUserByApplicationId = Effect.fn("getUserByApplicationId")(
                function* (applicationId: string) {
                    {
                        // rest of code
                    }
                },
            );

            return { getUserByApplicationId };
        }),
        dependencies: [DatabaseLive],
    },
) {}
Was this page helpful?