export const MasonClient = Effect.runSync(
HttpApiClient.make(MasonApi, {
baseUrl: "http://localhost:8002",
}).pipe(
Effect.provide(MasonHttpClient),
Effect.map((client) => ({
...client,
OAuth: {
...client.OAuth,
SignInWithGoogle: () =>
client.OAuth.SignInWithGoogle({
payload: { platform: PLATFORM.platform },
}).pipe(
Effect.flatMap(({ url }) =>
Match.value(PLATFORM).pipe(
Match.when({ platform: "desktop" }, (platform) =>
Effect.promise(() => platform.openUrl(url))
),
Match.orElse(() =>
Effect.sync(() => {
window.location.href = url;
})
)
)
)
),
},
}))
)
);
export const MasonClient = Effect.runSync(
HttpApiClient.make(MasonApi, {
baseUrl: "http://localhost:8002",
}).pipe(
Effect.provide(MasonHttpClient),
Effect.map((client) => ({
...client,
OAuth: {
...client.OAuth,
SignInWithGoogle: () =>
client.OAuth.SignInWithGoogle({
payload: { platform: PLATFORM.platform },
}).pipe(
Effect.flatMap(({ url }) =>
Match.value(PLATFORM).pipe(
Match.when({ platform: "desktop" }, (platform) =>
Effect.promise(() => platform.openUrl(url))
),
Match.orElse(() =>
Effect.sync(() => {
window.location.href = url;
})
)
)
)
),
},
}))
)
);