Update stuff so we can pass build hopefully
This commit is contained in:
@@ -1,39 +1,7 @@
|
||||
import type { EmailConfig, EmailUserConfig } from '@auth/core/providers/email';
|
||||
import { generateRandomString, RandomReader } from '@oslojs/crypto/random';
|
||||
import { alphabet } from 'oslo/crypto';
|
||||
|
||||
type UseSendEmailPayload = {
|
||||
from: string;
|
||||
to: string[];
|
||||
subject: string;
|
||||
text: string;
|
||||
html: string;
|
||||
};
|
||||
|
||||
const sendUseSendEmail = async (
|
||||
apiKey: string,
|
||||
useSendUrl: string,
|
||||
payload: UseSendEmailPayload,
|
||||
) => {
|
||||
const response = await fetch(`${useSendUrl}/api/v1/emails`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: `Bearer ${apiKey}`,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
let errorBody: unknown;
|
||||
try {
|
||||
errorBody = await response.json();
|
||||
} catch {
|
||||
errorBody = response.statusText;
|
||||
}
|
||||
throw new Error(`UseSend error: ${JSON.stringify(errorBody)}`);
|
||||
}
|
||||
};
|
||||
import { UseSend } from 'usesend-js';
|
||||
|
||||
export default function UseSendProvider(config: EmailUserConfig): EmailConfig {
|
||||
return {
|
||||
@@ -64,11 +32,13 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig {
|
||||
throw new Error('USESEND_API_KEY and USESEND_URL must be set.');
|
||||
}
|
||||
|
||||
const useSend = new UseSend(apiKey, useSendUrl);
|
||||
|
||||
// For password reset, we want to send the code, not the magic link
|
||||
const isPasswordReset =
|
||||
url.includes('reset') || provider.id.includes('reset');
|
||||
|
||||
await sendUseSendEmail(apiKey, useSendUrl, {
|
||||
const result = await useSend.emails.send({
|
||||
from: provider.from ?? 'noreply@example.com',
|
||||
to: [to],
|
||||
subject: isPasswordReset
|
||||
@@ -100,6 +70,10 @@ export default function UseSendProvider(config: EmailUserConfig): EmailConfig {
|
||||
</div>
|
||||
`,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
throw new Error('UseSend error: ' + JSON.stringify(result.error));
|
||||
}
|
||||
},
|
||||
|
||||
options: config,
|
||||
|
||||
Reference in New Issue
Block a user