@explorins/pers-sdk
Version:
Platform-agnostic SDK for PERS (Phygital Experience Rewards System)
39 lines (31 loc) • 1.07 kB
text/typescript
/**
* PERS SDK Configuration interfaces
*/
import { AuthProvider } from './auth/auth-provider.interface';
export type PersEnvironment = 'development' | 'staging' | 'production';
export type PersApiVersion = 'v1' | 'v1.8' | 'v1.9' | 'v2';
export interface PersConfig {
environment: PersEnvironment;
apiProjectKey: string;
apiVersion?: PersApiVersion;
timeout?: number;
retries?: number;
authProvider?: AuthProvider;
// Internal - constructed automatically
readonly apiRoot?: string;
}
export interface PersAuthConfig {
type: 'firebase' | 'jwt' | 'none';
tokenProvider?: () => Promise<string | null>;
}
/**
* Internal function to construct API root from environment
*/
export function buildApiRoot(environment: PersEnvironment, version: PersApiVersion = 'v2'): string {
const baseUrls = {
development: 'https://explorins-loyalty.ngrok.io',
staging: `https://dev.api.pers.ninja/${version}`,
production: `https://dev.api.pers.ninja/${version}`
};
return `${baseUrls[environment]}`;
}