npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mailon

v0.0.6

Published

#### V2 usage in koa js 1. <code>$ npm i lodash nodemailer</code>

Downloads

1

Readme

Mailon

V2

usage in koa js

  1. $ npm i lodash nodemailer

config.yaml

server:
  protocol: http
  hostname: localhost
  port: 5000

email:
  service: gmail
  auth:
    user: '[email protected]'
    pass: yourpassword
const Koa = require('koa')
const app = new Koa()
const mailer = require('mailon')
const { server, email } = require('config')

app.use(mailer(email, __dirname + '/public'))

/* SERVER */
app.listen(server.port, () => {
    const http = require('url').format(server)
    console.log(`server running at: ${http}`)
})

controllers

async requestPasswordRecovery(ctx){
    const code = await ctx.state.$user.newPasswordRecoveryCode()
    if(!code) ctx.cargo.original(ctx.request.body).state('validation')
    .loadmsg('code', 'invalid code').error(422)
    await ctx.mailer
        .to(ctx.state.$user.email)
        .subject('Password Revocery Code')
        .body(ctx.template.render('email-verification.html', code))
        .send()
    ctx.body = ctx.cargo.msg(`password recovery email sent to ${ctx.state.$user.email}`)
}

V1

Mailon is a templating engine for tempate emails.

Getting Started

1. Create Templates

Create a template folder anywhere in your project folder. All template files should end in .html. We should stick to the following naming convention filename.langcode.html. The langcode will be used to retrieve the correct translation of the email if your app supports it.

Example Filenames

const exampleFileNameEnglish = 'welcome.en.html'
const exampleFileNameChinese = 'welcome.zh.html'

Example Welcome Email in English: welcome.en.html

<h1>Welcome to company.name</h1>
<p>you have created a new account, below are your account credentials:</p>
<ul>
    <li>username: ${user.username}</li>
    <li>password: ${user.password}</li>
</ul>

For more information please click <a href="${link}">here</a>

Example Welcome Email in Chinese: welcome.en.html

<h1>账户主次成功</h1>
<p>下边是您账户信息:</p>
<ul>
    <li>用户名: ${user.username}</li>
    <li>密码: ${user.password}</li>
</ul>

更多信息, 请按<a href="${link}">here</a>

2. Setting up Mailon

const { mailon } = require('./mailmap')
const instance = mailon('path-where-you-store-your-templates')
instance.langTo('zh')

3. Getting and rendering emails with Mailon

instance.get('welcome', data)

output

<h1>账户主次成功</h1>
<p>下边是您账户信息:</p>
<ul>
    <li>用户名: some-username</li>
    <li>密码: some-password</li>
</ul>

更多信息, 请按<a href="some-link">here</a>

4. Express Middleware Example

Note: if you wish to set the langue you will have set a lang property on your request object before instantiating notis.

const mailon = require('./mailmap')('path-where-you-store-your-templates')

// mount to express app
app.use(mailon())


// accessing in express route

const SomeExpressRoute = async (req, res, next) => {

    const data = {
        user: { ... },
        invoice: { ... }
    }

    const email = req.mailon.get('some-email-template', data)

    next()

}