32 lines
726 B
TypeScript
32 lines
726 B
TypeScript
function getVerificationLink (email: { text: string }) {
|
|
const { text } = email
|
|
|
|
const regexp = /\[(?<link>http:\/\/[^\]]+)\]/g
|
|
const matched = text.matchAll(regexp)
|
|
|
|
if (!matched) throw new Error('Could not find verification link in email')
|
|
|
|
for (const match of matched) {
|
|
const link = match.groups.link
|
|
|
|
if (link.includes('/verify-account/')) return link
|
|
}
|
|
|
|
throw new Error('Could not find /verify-account/ link')
|
|
}
|
|
|
|
function findEmailTo (emails: { text: string, to: { address: string }[] }[], to: string) {
|
|
for (const email of emails) {
|
|
for (const { address } of email.to) {
|
|
if (address === to) return email
|
|
}
|
|
}
|
|
|
|
return undefined
|
|
}
|
|
|
|
export {
|
|
getVerificationLink,
|
|
findEmailTo
|
|
}
|