New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@brilab-mailer/core

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@brilab-mailer/core

`@brilab-mailer/core` provides the foundational NestJS module responsible for: - registering email providers - registering template engines - orchestrating rendering + sending - exposing `MailerService` as a unified high-level interface

latest
npmnpm
Version
0.0.5-5
Version published
Maintainers
1
Created
Source

@brilab-mailer/core

Overview

@brilab-mailer/core provides the foundational NestJS module responsible for:

  • registering email providers
  • registering template engines
  • orchestrating rendering + sending
  • exposing MailerService as a unified high-level interface

This is the heart of the Brilab Mailer architecture.

High-Level Architecture

                +---------------------+
                |  NestJS Application |
                +---------------------+
                           |
                           v
                +---------------------+
                |    MailerModule     |
                +---------------------+
                   |             |
                   v             v
     +-------------------+   +-------------------+
     | MailerProvider    |   | TemplateEngine    |
     +-------------------+   +-------------------+

Core Responsibilities

1. Provider Registration

You pass providerClass in MailerModule.register():

MailerModule.register({
  providerClass: MailtrapApiProvider,
});

Core will:

  • instantiate the provider
  • validate that it implements MailerProvider
  • expose it through MAILER_PROVIDER

2. Template Engine Registration

MailerModule.register({
  templateEngineClass: HandlebarsTemplateEngine,
});

3. Unified MailerService

await this.mailer.send({
  to: email,
  subject: 'Welcome!',
  html: await this.template.render('welcome', { name }),
});

API Documentation

MailerModule.register(options)

interface MailerModuleOptions {
  providerClass: Type<MailerProvider>;
  templateEngineClass?: Type<MailerTemplateEngine>;
}

MailerService

send(options: MailerSendOptions): Promise<void>
render(template: string, context: any): Promise<string>

Error Handling Strategy

  • missing provider → MailerMissingProviderException
  • provider.send() error → wrapped into MailerProviderException
  • missing template engine → bypass rendering (raw content)

Lifecycle

  • provider instantiated once per module
  • template engine instantiated once
  • service stateless

Best Practices

  • Always use dynamic module configuration.
  • Use ConfigModule for provider secrets.
  • Keep providers stateless.

FAQs

Package last updated on 22 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts