UNPKG

magically-sdk

Version:

Official SDK for Magically - Build mobile apps with AI

51 lines (44 loc) 1.74 kB
import { MagicallyAuth } from './MagicallyAuth'; import { MagicallyData } from './MagicallyData'; import { MagicallyLLM } from './MagicallyLLM'; import { MagicallyFiles } from './MagicallyFiles'; import { MagicallyFunctions } from './MagicallyFunctions'; import { SDKConfig } from './types'; import { Logger } from './Logger'; import { APIClient } from './APIClient'; export class MagicallySDK { public auth: MagicallyAuth; public data: MagicallyData; public llm: MagicallyLLM; public files: MagicallyFiles; public functions: MagicallyFunctions; private config: SDKConfig; private logger: Logger; private apiClient: APIClient; constructor(config?: SDKConfig) { // Validate config if (!config || !config.projectId) { throw new Error('MagicallySDK requires configuration. In Cloudflare Workers, pass env variables explicitly: new MagicallySDK({ projectId: env.MAGICALLY_PROJECT_ID, apiUrl: env.MAGICALLY_API_BASE_URL, apiKey: env.MAGICALLY_API_KEY })'); } this.config = config; this.logger = new Logger(config.debug || false, 'MagicallySDK'); this.apiClient = new APIClient(config, 'MagicallySDK'); this.auth = new MagicallyAuth(config); this.data = new MagicallyData(config, this.auth); this.llm = new MagicallyLLM(config, this.auth); this.files = new MagicallyFiles(config, this.auth); this.functions = new MagicallyFunctions(config, this.auth); this.logger.info('SDK initialized', { projectId: config.projectId, debug: config.debug || false, apiUrl: config.apiUrl || 'https://trymagically.com', hasApiKey: !!config.apiKey }); } /** * Get SDK configuration */ getConfig(): SDKConfig { return { ...this.config }; } }