New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

isbndb-client

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

isbndb-client

A TypeScript client library for the ISBNdb API

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

ISBNdb Client

npm version release-please

⚠️ Disclaimer: This is an unofficial TypeScript client for the ISBNdb API. It is not affiliated with, endorsed by, or connected to isbndb.com. This library is maintained independently and is not officially supported by ISBNdb.

A TypeScript client for the ISBNdb API, providing type-safe access to book metadata, author information, publisher details, and subject classifications.

Features

  • Full TypeScript support with comprehensive type definitions
  • Support for all ISBNdb API endpoints
  • Automatic error handling and response formatting
  • Support for all subscription plans (Basic, Premium, Pro)
  • Built-in rate limiting based on your subscription plan
  • Comprehensive test suite

Installation

npm install isbndb-client
# or
yarn add isbndb-client

Quick Start

import { createIsbndbClient, IsbndbService } from 'isbndb-client';

// Create a client with your API key
const client = createIsbndbClient('YOUR_API_KEY', 'PRO'); // 'BASIC', 'PREMIUM', or 'PRO'
const isbndb = new IsbndbService(client);

// Search for books
const searchResults = await isbndb.searchBooks('javascript');
console.log(searchResults.data.books);

// Get book details by ISBN
const bookDetails = await isbndb.getBook('9780131103627');
console.log(bookDetails.data.book);

// Search for authors
const authorResults = await isbndb.searchAuthors('Martin Fowler');
console.log(authorResults.data.authors);

API Reference

Book Operations

  • getBook(isbn: string, withPrices?: boolean): Get book details by ISBN
  • searchBooks(query: string, options?: BookSearchOptions): Search for books by keyword

Author Operations

  • getAuthor(name: string, options?: AuthorDetailOptions): Get author details and their books
  • searchAuthors(query: string, options?: AuthorSearchOptions): Search for authors by name

Publisher Operations

  • getPublisher(name: string, options?: PublisherDetailOptions): Get publisher details and their books
  • searchPublishers(query: string, options?: PublisherSearchOptions): Search for publishers

Subject Operations

  • getSubject(name: string): Get subject details
  • searchSubjects(query: string, options?: SubjectSearchOptions): Search for subjects

General Operations

  • searchIndex(index: "subjects" | "publishers" | "authors" | "books", options?: IndexSearchOptions): General search across indexes
  • getStats(): Get database statistics

Subscription Plans

The client supports all ISBNdb subscription plans:

  • Basic: 1 request per second
  • Premium: 3 requests per second
  • Pro: 5 requests per second

The appropriate API endpoint is automatically selected based on your plan.

Error Handling

The client provides standardized error handling with detailed error messages:

try {
  await isbndb.getBook('invalid-isbn');
} catch (error) {
  console.error(error);
  // {
  //   status: 404,
  //   statusText: 'Not Found',
  //   message: 'Book not found',
  //   url: '/book/invalid-isbn'
  // }
}

Testing

The project includes a comprehensive test suite. To run the tests:

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see the LICENSE file for details.

Keywords

isbndb

FAQs

Package last updated on 10 May 2025

Related posts