1.0.7 • Published 8 months ago

sendgrid-send v1.0.7

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

SendGrid Send

You don't need a library to use a REST API. Just create a valid JSON body, and make a POST request to SendGrid.

Features

  1. TypeScript support - be confident about your JSON.
  2. ESM and CJS - choose either import or require.
  3. Use the Fetch API or any HTTP library^1 of your choice.
  4. Literally 0kb - import a single-line JavaScript function.

^1: @sendgrid/mail uses Axios - @sendgrid/client depends on it.

export const generateSgSendBody = (requestBody) => requestBody;

The requestBody is typed according to the SendGrid API documentation.

Usage

Please reference the SendGrid API documentation for all supported values.

With Fetch API

The generateSgSendRequest function returns a Request object which can be used with the Fetch API. The URL, method, and HTTP headers are all set.

import { generateSgSendRequest } from 'sendgrid-send';

await fetch(
  generateSgSendRequest(
    {
      from: { email: 'sender@doamin.com' },
      personalizations: [{ to: [{ email: 'receiver@domain.com' }] }],
      subject: 'SendGrid and the Fetch API is awesome.',
      content: [{ type: 'text/plain', value: 'Best of both worlds.' }],
      // ...
    },
    '<<YOUR_API_KEY_HERE>>'
  )
);

Generate Body

npm i sendgrid-send
import { generateSgSendBody } from 'sendgrid-send';
// const { generateSgSendBody } = require('sendgrid-send');

const body = generateSgSendBody({
  from: { email: 'sender@doamin.com' },
  // ...
});

// Make a HTTP request using the method of your choice.
// e.g. node-fetch, cross-fetch, axios, got, undici

await fetch('https://api.sendgrid.com/v3/mail/send', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <<YOUR_API_KEY_HERE>>',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(body),
});

Import Type Only

npm i sendgrid-send -D
import type { SendGridRequestBody } from 'sendgrid-send';

const body = {
  from: { email: 'sender@doamin.com' },
  // ...
} satisfies SendGridRequestBody;

Notes

JavaScript + VS Code

Create a jsconfig.json file and enable checkJs.

{
  "compilerOptions": {
    "checkJs": true
  }
}
1.0.7

8 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago