nodemailer-sequelize-queue
Version:
Queue for mails with nodemailer and cron scheduler
45 lines (44 loc) • 1.46 kB
TypeScript
import { AddQueueModelAttributes, IQueueModel, IQueueModelStatic } from './QueueModel';
import { Sequelize, Model, Dialect } from 'sequelize';
export default class NodemailerSequelizeQueue implements INodemailerSequelizeQueue {
queueModel: IQueueModelStatic;
private sequelize;
private dbInisializated;
private scheduled;
private smtpCredentials;
private options;
private mailer;
constructor(dbConfigInstance: DbCongifInstance, smtpCredentials: any, options?: Options);
private initDatabase;
initScheduler({ queueLimit }: InitSchedulerProps): Promise<void>;
initModels(): Promise<void>;
queueMail(data: AddQueueModelAttributes): Promise<IQueueModel | void>;
}
export interface INodemailerSequelizeQueue {
queueModel: IQueueModelStatic;
queueMail(data: AddQueueModelAttributes): Promise<Model<any, any> | void>;
initScheduler(props?: {
queueLimit?: number;
}): Promise<void>;
}
export declare type DbConfig = {
username: string;
password: string;
database: string;
host: string;
dialect: Dialect;
logging?: boolean | ((sql: string, timing?: number) => void);
};
export declare type DbCongifInstance = {
config?: DbConfig;
sequelize?: Sequelize;
};
export declare type Options = {
maxAttempts?: number;
expression?: string;
logging?: boolean;
sendImmidiatly?: boolean;
};
export declare type InitSchedulerProps = {
queueLimit?: number;
};