@idiomatic-ts/xapi-sdk
v0.1.6
Published
Workana xAPI SDK
Downloads
28
Readme
Workana xAPI SDK
A JavaScript/TypeScript SDK for interacting with Workana's xAPI. This library provides a simple and unified interface to access Workana's API services including onboarding, talents, and projects management (for now).
Overview
This SDK implements the singleton pattern, ensuring that only one instance of the service is created throughout your application. This approach provides a centralized way to manage API connections and maintain consistent configuration across your codebase.
Installation
npm install @workana/xapi-sdkRun npm run artifactregistry before installing the package.
Initialization
Before using the SDK, you must initialize it by calling the init method. This method sets up the HTTP client with your configuration and can only be called once per application lifecycle.
Init Method Parameters
The init method accepts the following parameters:
| Parameter | Type | Required | Default | Description |
|-------------------|--------------------------------------------------|----------|--------------------|------------------------------------------------------------------------------------------------------------------|
| xapiBaseUrl | string | Yes | - | The base URL for the xAPI service |
| dev | boolean \| string | No | true | Development mode flag. When enabled, adds development headers (X-Workana-Company-Hash and X-Workana-User-Id) |
| xapiCompanyHash | string | No | '' | Company hash used in development mode for authentication |
| xapiUserId | string | No | '' | User ID used in development mode for authentication |
| document | Document | No | undefined | The document object (typically window.document). Used for CSRF token extraction |
| errorHandler | (error: AxiosError) => Error \| Promise<Error> | No | (error) => error | Custom error handler function for processing API errors |
Usage Example
Here's an example of how to use the onboarding service to create a full-time profile:
import { errorHandler } from '@utils/errorHandler.ts';
import { FullTimeStep, xapiService } from '@workana/xapi-sdk';
// Initialize SDK (in main.tsx or equivalent entry point)
xapiService.init({
dev: import.meta.env.DEV,
xapiBaseUrl: import.meta.env.VITE_XAPI_BASE_URL as string,
xapiUserId: import.meta.env.VITE_XAPI_USER_ID as string,
xapiCompanyHash: import.meta.env.VITE_XAPI_COMPANY_HASH as string,
document,
errorHandler,
});
// Create a full-time profile
const profile = await xapiService.onboarding.createFullTimeProfile(
FullTimeStep.add_work_experiences,
);Available Services
The SDK provides access to the following services:
- onboarding: Manage onboarding flows and profile creation
- talents: Manage talent profiles, skills, languages, and work experiences
- projects: Manage project drafts and publications
