@qbraid-core/base
Version:
Core functionality for interacting with qBraid Cloud Services.
51 lines • 1.5 kB
JavaScript
;
// Copyright (c) 2025, qBraid Development Team
// All rights reserved.
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigManager = exports.DEFAULT_CONFIG_V1 = exports.DEFAULT_CONFIG = void 0;
const session_1 = require("./session");
const _1 = require(".");
// Browser-safe env accessor: returns '' when process/env is unavailable
const safeEnv = (key) => {
try {
// Avoid ReferenceError in browsers without process
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const p = globalThis.process;
return p?.env?.[key] ?? '';
}
catch {
return '';
}
};
exports.DEFAULT_CONFIG = {
default: {
'api-key': safeEnv('QBRAID_API_KEY'),
'refresh-token': safeEnv('REFRESH'),
email: safeEnv('JUPYTERHUB_USER'),
url: session_1.DEFAULT_BASE_URL,
},
};
exports.DEFAULT_CONFIG_V1 = {
default: {
'api-key': safeEnv('QBRAID_API_KEY'),
url: _1.DEFAULT_BASE_URL_V1,
},
};
/**
* Abstract base class for configuration management.
* Provides core configuration logic without filesystem operations.
* Implementations should provide their own storage mechanism.
*/
class ConfigManager {
configPath;
config;
constructor(filePath) {
this.configPath = filePath;
this.config = this.loadConfig();
}
getConfig() {
return this.config;
}
}
exports.ConfigManager = ConfigManager;
//# sourceMappingURL=config.js.map