@accounts/client-magic-link
Version:
@accounts/client-magic-link
29 lines (24 loc) • 808 B
text/typescript
import { type AccountsClient } from '@accounts/client';
import { type LoginResult, type LoginUserMagicLinkService } from '@accounts/types';
export class AccountsClientMagicLink {
private client: AccountsClient;
constructor(client: AccountsClient) {
if (!client) {
throw new Error('A valid client instance is required');
}
this.client = client;
}
/**
* Log the user in with a token.
*/
public async login(user: LoginUserMagicLinkService): Promise<LoginResult> {
return this.client.loginWithService('magic-link', user);
}
/**
* Request a new login link.
* @param {string} email - The email address to send a login link.
*/
public requestMagicLinkEmail(email: string): Promise<void> {
return this.client.transport.requestMagicLinkEmail(email);
}
}