@parry-gg/client
v1.0.12
Published
A TypeScript/JavaScript client library for Parry.gg's gRPC services, providing access to tournament management APIs. This client is generated from Protocol Buffer definitions using Google's [protoc](https://developers.google.com/protocol-buffers/docs/refe
Readme
@parry-gg/client
A TypeScript/JavaScript client library for Parry.gg's gRPC services, providing access to tournament management APIs. This client is generated from Protocol Buffer definitions using Google's protoc compiler with the gRPC-Web plugin.
Installation
npm install @parry-gg/client google-protobuf grpc-webPeer Dependencies
This package requires the following peer dependencies:
google-protobuf: Protocol Buffer runtime for JavaScriptgrpc-web: gRPC-Web client libraryxhr2: XMLHttpRequest polyfill (optional, for Node.js environments)
Environment Setup
Node.js
For Node.js environments, you need to provide an XMLHttpRequest polyfill:
const xhr = require('xhr2');
global.XMLHttpRequest = xhr;Or using ES modules:
import xhr from 'xhr2';
(global as any).XMLHttpRequest = xhr;Authentication
Before using the client, you need to:
- Create an API key at https://parry.gg.
- Include the API key in request headers as
X-API-KEY
Basic Usage
import { UserServiceClient, UpdateUserRequest, MutableUser } from '@parry-gg/client';
// Initialize client
const client = new UserServiceClient('https://grpcweb.parry.gg');
// Create request
const request = new UpdateUserRequest();
request.setId('user-id-here');
const user = new MutableUser();
user.setGamerTag('MyGamerTag');
user.setFirstName('John');
user.setLastName('Doe');
request.setUser(user);
// Make API call
const response = await client.updateUser(request, {
'X-API-KEY': 'your-api-key-here'
});Available Services
The client provides access to the following gRPC services:
- UserServiceClient: User management operations
- TournamentServiceClient: Tournament operations
- EventServiceClient: Event management
- BracketServiceClient: Bracket operations
- PhaseServiceClient: Phase management
- EntrantServiceClient: Entrant operations
- GameServiceClient: Game data
- HierarchyServiceClient: Tournament hierarchy
- MatchServiceClient: Match operations
- NotificationServiceClient: Notification system
- PageContentServiceClient: Content management
Data Models
The package includes TypeScript definitions for all data models:
- User: User profiles and information
- Tournament: Tournament data and metadata
- Event: Event details and configuration
- Bracket: Bracket structure and progression
- Phase: Tournament phases
- Entrant: Participant information
- Game: Game definitions
- Match: Match data and results
- Notification: System notifications
- Image: Image metadata
- Filter: Query filters
- Slug: URL slugs
- Request: Common request types
Configuration
Error Handling
The client throws gRPC-Web errors that can be caught and handled. Error codes follow the gRPC status code conventions:
try {
const response = await client.someMethod(request, metadata);
} catch (error) {
if (error.code === StatusCode.UNAUTHENTICATED) {
console.error('Invalid API key');
} else if (error.code === StatusCode.NOT_FOUND) {
console.error('Resource not found');
} else {
console.error('API error:', error.message);
}
}TypeScript Support
The package includes full TypeScript definitions. All models and services are strongly typed:
import { User, MutableUser, UserServiceClient } from '@parry-gg/client';
const user: User = response.getUser();
const gamerTag: string = user.getGamerTag();License
MIT
