@npldev/lpdb-ts-client
v1.3.0
Published
A client library for LPDB V3 API
Readme
Features
- Type-Safe - Full TypeScript support with types generated from the OpenAPI spec
- Fluent Builder API - Chain methods together for readable and maintainable code
- Conditions Builder - Build complex query conditions with a fluent, type-safe API
- All Wikis Supported - Access data from 70+ esports wikis (Dota 2, CS2, LoL, Valorant...)
- Lightweight - Zero runtime dependencies, uses native fetch API
Installation
# npm
npm install @npldev/lpdb-ts-client
# pnpm
pnpm add @npldev/lpdb-ts-client
# yarn
yarn add @npldev/lpdb-ts-client
# bun
bun add @npldev/lpdb-ts-clientQuick Start
import { LPDBClient } from '@npldev/lpdb-ts-client'
const client = new LPDBClient({
apiKey: 'your-api-key',
})
// Query players from Dota 2
const response = await client
.endpoint('/player')
.wiki('dota2')
.conditions('[[nationality::France]]')
.limit(10)
.execute()
console.log(response.result)Usage Examples
Get upcoming matches with stream URLs
const matches = await client
.endpoint('/match')
.wiki('counterstrike')
.conditions('[[finished::0]]')
.streamurls('true')
.limit(5)
.execute()Get team information
const teams = await client
.endpoint('/team')
.wiki('leagueoflegends')
.query('name, region, createdate')
.order('createdate DESC')
.limit(20)
.execute()Conditions Builder
Build complex query conditions with a fluent API:
import { ConditionsBuilder, Operator } from '@npldev/lpdb-ts-client'
const conditions = ConditionsBuilder.create('date', Operator.GREATER_THAN, '2024-01-01')
.and('date', Operator.LESS_THAN, '2024-12-31')
.andGroup(
ConditionsBuilder.create('liquipediatier', Operator.EQUALS, '1').or(
'liquipediatier',
Operator.EQUALS,
'2'
)
)
.toString()
const tournaments = await client
.endpoint('/tournament')
.wiki('dota2')
.conditions(conditions)
.execute()Error handling
import { LPDBClient, LPDBError } from '@npldev/lpdb-ts-client'
try {
const response = await client.endpoint('/player').wiki('valorant').execute()
} catch (error) {
if (error instanceof LPDBError) {
console.error(`API Error (${error.status}):`, error.message)
}
}Documentation
Full documentation is available at npldevfr.github.io/lpdb-ts-client
Requirements
- Node.js 18+ (for native fetch support)
- A Liquipedia API key
