Skip to content

vasic-digital/Catalogizer-API-Client-TS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@vasic-digital/catalogizer-api-client

Type-safe TypeScript client for the Catalogizer API. Wraps all REST endpoints with proper types from @vasic-digital/media-types, automatic token refresh, retry logic, and error classification.

Install

npm install @vasic-digital/catalogizer-api-client @vasic-digital/media-types

Usage

import { CatalogizerClient } from '@vasic-digital/catalogizer-api-client'

const client = new CatalogizerClient({
  baseURL: 'http://localhost:8080',
  timeout: 30000,
})

// Login
const session = await client.auth.login({ username: 'admin', password: 'secret' })

// Browse entities
const movies = await client.entities.browseByType('movie', { limit: 20 })

// Get entity details
const entity = await client.entities.get(1)

// List collections
const collections = await client.collections.list()

// Trigger a scan
const scan = await client.storage.startScan({ storage_root_id: 1 })

Services

Service Description
client.auth Login, logout, register, token refresh, profile management
client.entities Browse, search, detail, metadata, duplicates, user metadata
client.collections CRUD collections, manage items, smart rules
client.storage Storage roots, scan triggering, scan status

Error Handling

import { AuthenticationError, NetworkError, ValidationError } from '@vasic-digital/catalogizer-api-client'

try {
  await client.auth.login({ username: 'x', password: 'wrong' })
} catch (err) {
  if (err instanceof AuthenticationError) {
    // 401 — invalid credentials
  } else if (err instanceof NetworkError) {
    // network failure
  }
}

License

MIT

About

Type-safe TypeScript client for the Catalogizer API with axios, auth, retry, and per-domain services

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors