@event-sync/typescript-client
v1.0.0
Published
TypeScript HTTP client for EventSync API
Maintainers
Readme
@event-sync/typescript-client
TypeScript HTTP client for the EventSync API.
Installation
npm install @event-sync/typescript-client
# or
pnpm install @event-sync/typescript-client
# or
yarn add @event-sync/typescript-clientUsage
import { ApiClient, OpenAPI } from '@event-sync/typescript-client';
// Configure the base URL
OpenAPI.BASE = 'https://api.eventsync.io/api/v1';
OpenAPI.TOKEN = 'your-jwt-token-here'; // Optional: set token for authenticated requests
// Initialize the client
const client = new ApiClient();
// Example: Login
const loginResponse = await client.auth.login({
email: '[email protected]',
password: 'your-password'
});
// Access the response
const { accessToken, organizer } = loginResponse;
// Set the token for subsequent requests
OpenAPI.TOKEN = accessToken;
// Example: Get events
const events = await client.events.listEvents({
page: 1,
limit: 20,
status: 'upcoming'
});
// Example: Create an event (requires authentication)
const newEvent = await client.events.createEvent({
title: 'DevConf 2025',
description: 'Annual developer conference',
location: 'Paris',
startDate: '2025-10-15T08:00:00Z',
endDate: '2025-10-16T18:00:00Z'
});API Methods
The client provides methods for all API endpoints organized by resource:
- Auth:
login,logout,getMe - Events:
listEvents,createEvent,getEvent,updateEvent,deleteEvent - Sessions:
listSessions,createSession,getSession,updateSession,deleteSession - Speakers:
listSpeakers,createSpeaker,getSpeaker,updateSpeaker,deleteSpeaker,getSpeakerBySlug - Rooms:
listRooms,createRoom,getRoom,updateRoom,deleteRoom - Questions:
listQuestions,createQuestion,upvoteQuestion,deleteQuestion - Schedule:
getSchedule,getRoomSchedule - Favorites:
getSessionFavorites,addSessionFavorite,removeSessionFavorite - Media:
uploadMedia,getMedia,deleteMedia
Configuration
Configure the client using the OpenAPI object:
import { OpenAPI } from '@event-sync/typescript-client';
// Set base URL
OpenAPI.BASE = 'https://api.eventsync.io/api/v1';
// Set authentication token (for Bearer auth)
OpenAPI.TOKEN = 'your-jwt-token';
// Configure timeout (in milliseconds)
OpenAPI.WITH_CREDENTIALS = false;
OpenAPI.CREDENTIALS = 'include';Authentication
Most endpoints require authentication. Set your JWT token:
import { OpenAPI } from '@event-sync/typescript-client';
OpenAPI.TOKEN = 'your-jwt-token';The token is typically obtained through the login endpoint:
const { accessToken } = await client.auth.login({
email: '[email protected]',
password: 'your-password'
});
OpenAPI.TOKEN = accessToken;Error Handling
The client throws ApiError for failed requests:
import { ApiError } from '@event-sync/typescript-client';
try {
const events = await client.events.listEvents();
} catch (error) {
if (error instanceof ApiError) {
console.error('API Error:', error.status, error.message);
console.error('Details:', error.body);
}
}Development
To regenerate the client from the OpenAPI spec:
cd packages/typescript-client
pnpm run generateTo build the client:
pnpm run buildLicense
MIT
