import { Rule } from "../rule"; import { Context } from "../context"; import { Options } from "../options"; import { Client } from "../client"; import { getEmail } from "../utils"; export default class UserEmail extends Rule { private readonly pattern: string; constructor(context: Context, options: Options) { super(context, options); this.pattern = options.string("pattern"); } async run(client: Client): Promise { const pattern = new RegExp(`^${this.pattern}$`); const users = await client.listUsers(); for (const user of users) { const email = getEmail(user); if (email && !email.match(pattern)) { this.report(user, "userEmailDoesNotMatchPattern", { email, pattern: pattern.toString() }); } } } }