const anonymousToken = (exists: boolean) => {
if (exists) {
return Option.some(JSON.stringify({ name: 'My Name' }));
}
return Option.none();
};
const decodeToken = (token: string) => {
return Effect.promise(() => Promise.resolve(JSON.parse(token)));
};
const apiCall = (token: { name: string }) => {
return Effect.promise(() => Promise.resolve({ success: true }));
};
const result = await Effect.runPromise(
anonymousToken(false).pipe(
Effect.flatMap(decodeToken),
Effect.flatMap(apiCall)
)
);
const anonymousToken = (exists: boolean) => {
if (exists) {
return Option.some(JSON.stringify({ name: 'My Name' }));
}
return Option.none();
};
const decodeToken = (token: string) => {
return Effect.promise(() => Promise.resolve(JSON.parse(token)));
};
const apiCall = (token: { name: string }) => {
return Effect.promise(() => Promise.resolve({ success: true }));
};
const result = await Effect.runPromise(
anonymousToken(false).pipe(
Effect.flatMap(decodeToken),
Effect.flatMap(apiCall)
)
);