1.1.22 • Published 2 months ago

@universal-packages/background-jobs-mailing v1.1.22

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Background Jobs

npm version Testing codecov

Mailing on top of Background Jobs.

Install

npm install @universal-packages/background-jobs-mailing

npm install @universal-packages/background-jobs
npm install redis

Jobs

After installation jobs will automatically load email job classes, pass all the mailing options through the jobs option loaderOptions.

import { Jobs } from '@universal-packages/background-jobs-mailing'

import WelcomeEmail from './src/emails/Welcome.email'

const jobs = new Jobs({ jobsLocation: './src/jobs', loaderOptions: { mailing: { engine: 'local' } } })
await jobs.prepare()

await WelcomeEmail.sendLater({ userId: 123 })

await jobs.release()
// WelcomeEmail.job.js|ts
import { BaseEmail } from '@universal-packages/background-jobs-mailing'

export default class WelcomeEmail extends BaseEmail {
  async build(params) {
    const user = await User.find(params.userId)

    return { subject: `Welcome ${user.name}`, to: user.email, from: 'support@company.com' }
  }
}

LoaderOptions

Mailing takes the same options as the original Mailing.

BaseEmail

Base interface to enable a JS class to be used as a mailer class, it will need a build method that return the send options.

Static properties

Same static properties as BaseJob

Templates

Instead of passing a templatesLocation an Email class can automatically infer a template derived from the same name as the class.

- emails
  |- Welcome.email.js
  |- welcome-email.html
  |- welcome-email.txt

Now the welcome-email template will be rendered and used as html contents when sending the welcome email without specifying it.

Typescript

This library is developed in TypeScript and shipped fully typed.

Contributing

The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.

License

MIT licensed.

1.1.19

2 months ago

1.1.18

2 months ago

1.1.17

2 months ago

1.1.22

2 months ago

1.1.21

2 months ago

1.1.20

2 months ago

1.1.16

2 months ago

1.1.15

2 months ago

1.1.14

3 months ago

1.1.13

3 months ago

1.1.12

3 months ago

1.1.9

3 months ago

1.1.11

3 months ago

1.1.10

3 months ago

1.1.8

4 months ago

1.1.7

4 months ago

1.1.6

4 months ago

1.1.5

4 months ago

1.1.4

4 months ago

1.1.1

6 months ago

1.1.0

6 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.1.3

6 months ago

1.1.2

6 months ago

1.0.11

7 months ago

1.0.10

7 months ago

1.0.13

6 months ago

1.0.12

6 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.0

1 year ago