magically-sdk
Version:
Official SDK for Magically - Build mobile apps with AI
40 lines (39 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MagicallySDK = void 0;
const MagicallyAuth_1 = require("./MagicallyAuth");
const MagicallyData_1 = require("./MagicallyData");
const MagicallyLLM_1 = require("./MagicallyLLM");
const MagicallyFiles_1 = require("./MagicallyFiles");
const MagicallyFunctions_1 = require("./MagicallyFunctions");
const Logger_1 = require("./Logger");
const APIClient_1 = require("./APIClient");
class MagicallySDK {
constructor(config) {
// 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_1.Logger(config.debug || false, 'MagicallySDK');
this.apiClient = new APIClient_1.APIClient(config, 'MagicallySDK');
this.auth = new MagicallyAuth_1.MagicallyAuth(config);
this.data = new MagicallyData_1.MagicallyData(config, this.auth);
this.llm = new MagicallyLLM_1.MagicallyLLM(config, this.auth);
this.files = new MagicallyFiles_1.MagicallyFiles(config, this.auth);
this.functions = new MagicallyFunctions_1.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() {
return { ...this.config };
}
}
exports.MagicallySDK = MagicallySDK;