const RefreshTokenSuccess = S.struct({
id_token: Token,
refresh_token: RefreshToken,
expires_in: S.string,
user_id: S.string
}).pipe(S.attachPropertySignature('_tag', 'Success'));
const RefreshTokenError = S.struct({
error: S.struct({
code: S.number,
message: S.string,
status: S.string
})
}).pipe(S.attachPropertySignature('_tag', 'Failure'));
const RefreshTokenResponse = S.union(RefreshTokenSuccess, RefreshTokenError);
const result = (u: unknown) =>
S.parse(RefreshTokenResponse)(u).pipe(
Effect.filterOrDie(
(res) => res._tag === 'Success',
() => 'Error!'
),
// type error because the above isn't being type guarded I guess..
Effect.map(res => res.id_token)
);
const RefreshTokenSuccess = S.struct({
id_token: Token,
refresh_token: RefreshToken,
expires_in: S.string,
user_id: S.string
}).pipe(S.attachPropertySignature('_tag', 'Success'));
const RefreshTokenError = S.struct({
error: S.struct({
code: S.number,
message: S.string,
status: S.string
})
}).pipe(S.attachPropertySignature('_tag', 'Failure'));
const RefreshTokenResponse = S.union(RefreshTokenSuccess, RefreshTokenError);
const result = (u: unknown) =>
S.parse(RefreshTokenResponse)(u).pipe(
Effect.filterOrDie(
(res) => res._tag === 'Success',
() => 'Error!'
),
// type error because the above isn't being type guarded I guess..
Effect.map(res => res.id_token)
);