Socket
Book a DemoInstallSign in
Socket

new-request

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

new-request

Type-check and autocomplete for 3rd party REST API requests

0.0.33
latest
Source
npmnpm
Version published
Weekly downloads
39
-18.75%
Maintainers
1
Weekly downloads
 
Created
Source

new-request

Use 3rd party REST APIs with confidence.

Twilio SMS, SendGrid, Postmark, … show more

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

// after - the request body is fully typed!
await sendEmail(body, { apiKey: 'secret' });

Benefits

  • Type Safety: Fully typed request and response bodies.
  • Easy Migration: Uses the API's request body format.
  • Small in Size: Mostly types. Minimum runtime code.
  • Error Handling without using a try...catch block.
  • Fetch API ❤️ with a custom fetch function support.

Usage

npm i new-request

All modules have a similar structure.

// Pseudocode using TypeScript type names.
const response = await moduleName(RequestBody, Options);

// Response body type can be easily narrowed.
if (response.ok) response.body; // ResponseBody
if (!response.ok) response.body; // ResponseBody4xx

Reference the services section for all available modules.

import { send // This will autocomplete module import in most IDEs.

The parameter types are exported for TypeScript and JSDoc usage.

import type { RequestBody, Options } from 'new-request/email/send-grid/v3/POST/index.js';

type Email = NonNullable<RequestBody['from']>;

Example

SendGrid mail send API v3

import { sendEmail } from 'new-request/email/send-grid/v3/POST/index.js';

// Everything is typed and autocompleted.
const response = await sendEmail(
  // First parameter closely matches the API's request body.
  // In this example, reference the SendGrid API documentation.
  // https://docs.sendgrid.com/api-reference/mail-send/mail-send
  {
    personalizations: [{ to: [{ email: 'recipient@example.com' }] }],
    subject: 'title',
    content: [{ type: 'text/plain', value: 'body' }],
    from: { email: 'sender@example.com' }, // optional, override
    // ...
  },

  // Second parameter `options` can be modularized and reused.
  {
    apiKey: 'SG.this_is_a_secret_api_key.do_not_expose',
    from: { email: 'sender@example.com' }, // required
    // Custom `fetch` function can be provided here.
  },
);

if (response instanceof Error) {
  // Handle fetch error, which is most-likely a network issue.
} else if (!response.ok) {
  response.status; // 400 | 401 | 403 | 404 | 413 | 500
  // The response body can be narrowed based on the status.
  if (response.status !== 500) response.body; // ResponseBody4xx
  if (response.status === 500) response.body; // ResponseBody5xx
} else {
  response.status; // 202, Successfully sent the mail.
}

Services

Email: SendGrid, Postmark

import { sendEmail } from 'new-request/email/send-grid/v3/POST';
import { sendEmail } from 'new-request/email/postmark/POST';

SMS: Twilio SMS, NHN Cloud SMS

import { sendSms } from 'new-request/sms/twilio/2010-04-01/POST';
import { sendSms } from 'new-request/sms/nhn/v3.0/POST';

Message: Pushover, NHN Dooray!

import { pushMessage } from 'new-request/message/pushover/1';
import { sendMessage } from 'new-request/message/dooray';

TTS: CLOVA Voice

import { textToSpeech } from 'new-request/tts/naver/v1';

Misc: NEIS 학교 기본 정보

import { searchSchool } from 'new-request/misc/neis/info';

FAQs

Package last updated on 12 Aug 2025

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

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.