Socket
Socket
Sign inDemoInstall

teeny-request

Package Overview
Dependencies
16
Maintainers
4
Versions
54
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    teeny-request

Like request, but smaller.


Version published
Weekly downloads
5.3M
increased by3.08%
Maintainers
4
Install size
815 kB
Created
Weekly downloads
 

Package description

What is teeny-request?

The teeny-request npm package is a lightweight HTTP client designed to be a minimalistic wrapper around the native http and https modules in Node.js. It is used to make HTTP requests from Node.js applications with a simple and easy-to-use API.

What are teeny-request's main functionalities?

Simple HTTP GET requests

This feature allows you to perform a simple HTTP GET request to retrieve data from a specified URL.

const teenyRequest = require('teeny-request');
teenyRequest('http://example.com', (error, response, body) => {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

HTTP POST requests with JSON body

This feature allows you to perform an HTTP POST request with a JSON body to send data to a server.

const teenyRequest = require('teeny-request');
teenyRequest({
  method: 'POST',
  uri: 'http://example.com/api/data',
  body: { key: 'value' },
  json: true
}, (error, response, body) => {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

Custom headers and other options

This feature allows you to customize the headers and other options for your HTTP request.

const teenyRequest = require('teeny-request');
teenyRequest({
  method: 'GET',
  uri: 'http://example.com',
  headers: {
    'User-Agent': 'My-Custom-User-Agent'
  }
}, (error, response, body) => {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

Other packages similar to teeny-request

Readme

Source

Build Status

teeny-request

Like request, but much smaller - and with less options. Uses node-fetch under the hood. Pop it in where you would use request. Improves load and parse time of modules.

const request = require('teeny-request').teenyRequest;

request({uri: 'http://ip.jsontest.com/'}, function (error, response, body) {
  console.log('error:', error); // Print the error if one occurred
  console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log('body:', body); // Print the JSON.
});

For TypeScript, you can use @types/request.

import {teenyRequest as request} from 'teeny-request';
import * as r from 'request'; // Only for type declarations

request({uri: 'http://ip.jsontest.com/'}, (error: any, response: r.Response, body: any) => {
  console.log('error:', error); // Print the error if one occurred
  console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log('body:', body); // Print the JSON.
});

teenyRequest(options, callback)

Options are limited to the following

  • uri
  • method, default GET
  • headers
  • json
  • qs
  • useQuerystring
  • timeout in ms
  • gzip
  • proxy
request({uri:'http://service.com/upload', method:'POST', json: {key:'value'}}, function(err,httpResponse,body){ /* ... */ })

The callback argument gets 3 arguments:

  • An error when applicable (usually from http.ClientRequest object)
  • A response object with statusCode, a statusMessage, and a body
  • The third is the response body (JSON object)

defaults(options)

Set default options for every teenyRequest call.

let defaultRequest = teenyRequest.defaults({timeout: 60000});
      defaultRequest({uri: 'http://ip.jsontest.com/'}, function (error, response, body) {
            assert.ifError(error);
            assert.strictEqual(response.statusCode, 200);
            console.log(body.ip);
            assert.notEqual(body.ip, null);
            
            done();
        });

Proxy environment variables

If environment variables HTTP_PROXY, HTTPS_PROXY, or NO_PROXY are set, they are respected.

Building with Webpack 4+

Since 4.0.0, Webpack uses javascript/esm for .mjs files which handles ESM more strictly compared to javascript/auto. If you get the error Can't import the named export 'PassThrough' from non EcmaScript module, please add the following to your Webpack config:

{
    test: /\.mjs$/,
    type: 'javascript/auto',
},

Motivation

request has a ton of options and features and is accordingly large. Requiring a module incurs load and parse time. For request, that is around 600ms.

Load time of request measured with require-so-slow

teeny-request doesn't have any of the bells and whistles that request has, but is so much faster to load. If startup time is an issue and you don't need much beyond a basic GET and POST, you can use teeny-request.

Thanks

Special thanks to billyjacobson for suggesting the name. Please report all bugs to them. Just kidding. Please open issues.

Keywords

FAQs

Last updated on 20 Jul 2023

Did you know?

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc