Skip to content

Sideko-Inc/make-request-js

Repository files navigation

make-api-request-js

CI npm version codecov

Modern TypeScript HTTP client for browser and Node.js environments.

Features

  • 🚀 Universal: Works in both browser and Node.js
  • 🔒 Type Safe: Full TypeScript support with strict typing
  • 🛡️ Secure: Built-in security features and authentication
  • 🧪 Well Tested: Comprehensive test coverage
  • 📦 Zero Config: Works out of the box
  • 🔌 Extensible: Multiple authentication methods

Installation

pnpm add make-api-request-js

Or with npm:

npm install make-api-request-js

Quick Start

import { CoreClient } from 'make-api-request-js';

const client = new CoreClient({
  baseUrl: 'https://api.example.com'
});

// Make a GET request
const response = await client.makeRequest({
  method: 'get',
  path: '/users'
});

const users = await response.json();
console.log(users);

Authentication

Bearer Token

import { CoreClient, AuthBearer } from 'make-api-request-js';

const client = new CoreClient({
  baseUrl: 'https://api.example.com',
  auths: {
    bearer: new AuthBearer('your-token-here')
  }
});

const response = await client.makeRequest({
  method: 'get',
  path: '/protected',
  auth: ['bearer']
});

API Key

import { AuthKey } from 'make-api-request-js';

// Header-based API key
const headerAuth = new AuthKey('X-API-Key', 'your-api-key');

// Query parameter API key
const queryAuth = new AuthKey('api_key', 'your-api-key', 'query');

OAuth2 Client Credentials

import { OAuth2ClientCredentials } from 'make-api-request-js';

const oauth = new OAuth2ClientCredentials(
  'client-id',
  'client-secret',
  'https://auth.example.com/token'
);

Development

# Install dependencies
pnpm install

# Run tests
pnpm test

# Run tests with coverage
pnpm test:coverage

# Build the project
pnpm build

# Run linting
pnpm lint

# Format code
pnpm format

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - see LICENSE file for details.

About

Modern TypeScript HTTP client for browser and Node.js environments

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •