18 lines
585 B
TypeScript
18 lines
585 B
TypeScript
import { Envelope, User } from "../../interfaces/mail/attrs.interface";
|
|
|
|
export function nbMembers(envelope: Envelope) {
|
|
return getMembers(envelope).length;
|
|
}
|
|
|
|
export function getMembers(envelope: Envelope) {
|
|
const members: User[] = [];
|
|
const fields = ["from", "to", "sender", "replyTo", "cc", "bcc"] as const;
|
|
fields.forEach((field) => {
|
|
envelope[field]?.forEach((member: User) => {
|
|
if (members.find((m) => m.mailbox === member.mailbox && m.host === member.host)) return;
|
|
members.push(member);
|
|
});
|
|
});
|
|
return members;
|
|
}
|