playfab-asyncify
v1.0.2
Published
Async/await wrapper for PlayFab SDK, converting callback-based APIs to Promise-based APIs
Maintainers
Readme
PlayFab Async
A TypeScript library that provides async/await wrappers for the PlayFab SDK, converting callback-based APIs to Promise-based APIs for easier modern JavaScript/TypeScript development.
Features
- Promise-based API: Convert PlayFab's callback-based methods to async/await
- Type-safe: Full TypeScript support with proper type definitions
- All PlayFab modules: Support for Client, Server, Admin, CloudScript, and Secrets APIs
- Custom methods: Additional utility functions for common operations like catalog management
- HTTP patching: Automatic HTTP request handling with proper headers
Installation
npm install playfab-asyncUsage
Basic Setup
import { PlayFabClientAsync, PlayFabAsyncify } from 'playfab-async';
// Set your PlayFab settings
PlayFabAsyncify.setSettings({
titleId: 'YOUR_TITLE_ID',
developerSecretKey: 'YOUR_SECRET_KEY' // For server/admin operations
}, PlayFabClientAsync);Client API Example
import { PlayFabClientAsync } from 'playfab-async';
async function loginWithCustomID() {
try {
const result = await PlayFabClientAsync.LoginWithCustomID({
CustomId: 'player123',
CreateAccount: true
});
console.log('Login successful:', result.data);
} catch (error) {
console.error('Login failed:', error);
}
}Server API Example
import { PlayFabServerAsync } from 'playfab-async';
async function grantItemsToUser() {
try {
const result = await PlayFabServerAsync.GrantItemsToUser({
PlayFabId: 'PLAYER_ID',
ItemIds: ['item1', 'item2'],
CatalogVersion: 'v1'
});
console.log('Items granted:', result.data);
} catch (error) {
console.error('Grant failed:', error);
}
}Admin API Example
import { PlayFabAdminAsync } from 'playfab-async';
async function getPlayerProfile() {
try {
const result = await PlayFabAdminAsync.GetPlayerProfile({
PlayFabId: 'PLAYER_ID'
});
console.log('Player profile:', result.data);
} catch (error) {
console.error('Get profile failed:', error);
}
}Custom Catalog Methods
import { LiveCatalog } from 'playfab-async';
async function getMergedCatalog() {
try {
const result = await LiveCatalog.GetMergedCatalog(
{ CatalogVersion: 'v1', LiveCatalogVersion: 'Live' },
PlayFabServerAsync.GetCatalogItems,
{ titleId: 'YOUR_TITLE_ID' }
);
console.log('Merged catalog:', result.data);
} catch (error) {
console.error('Get catalog failed:', error);
}
}API Reference
Modules
PlayFabClientAsync- Client-side operations (login, player data, etc.)PlayFabServerAsync- Server-side operations (player management, economy, etc.)PlayFabAdminAsync- Admin operations (player profiles, content management, etc.)PlayFabCloudScriptAsync- CloudScript operationsPlayFabSecretsAsync- Secrets management
Custom Methods
LiveCatalog- Utilities for managing live catalogs and item grants
Requirements
- Node.js >= 14.0.0
- TypeScript >= 5.0.0
- PlayFab SDK
Development
# Install dependencies
npm install
# Build the project
npm run build
# Clean build artifacts
npm run cleanLicense
MIT
