@qbraid-core/compute
Version:
Client for the qBraid Compute service.
63 lines • 2.5 kB
JavaScript
;
// Copyright (c) 2025, qBraid Development Team
// All rights reserved.
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ComputeManagerClient = void 0;
const base_1 = require("@qbraid-core/base");
const context_1 = require("@qbraid-core/base/src/context");
const axios_1 = __importDefault(require("axios"));
class ComputeManagerClient extends base_1.QbraidClient {
qBraidURLs;
constructor(session, hubURL = context_1.DEFAULT_HUB_URL, labURL = context_1.DEFAULT_LAB_URL) {
super(session);
this.qBraidURLs = {
hub: hubURL,
lab: labURL,
};
}
async getComputeManager(userEmail) {
const response = await this.session.client.get(`/api/lab/compute/get-profiles/${userEmail}`);
return response.data;
}
async getUserLabToken(userApiKey) {
const response = await this.session.client.get('/api/lab/compute/tokens', {
headers: {
'api-key': userApiKey,
},
});
const data = response.data;
const tokenData = data.token;
return tokenData.token;
}
async startServer(labToken, profileSlug = '2vCPU_4GB') {
const response = await this.session.client.post('/api/lab/compute/start/server', {
labToken: labToken,
labURL: this.qBraidURLs['lab'],
slug: profileSlug,
});
return response;
}
async stopServer(labToken, labUserName) {
const response = await axios_1.default.delete(`${this.qBraidURLs['hub']}/hub/api/users/${labUserName}/server`, { headers: { Authorization: `token ${labToken}` } });
return response;
}
async statusServer(labToken, labUserName) {
const response = await axios_1.default.get(`${this.qBraidURLs['hub']}/hub/api/users/${labUserName}`, {
headers: {
Authorization: `token ${labToken}`,
Accept: '*/*',
'Content-Type': 'application/json; charset=utf-8',
},
});
return response.data;
}
async getProfilePrice(profileSlug) {
const response = await this.session.client.get(`/api/lab/compute/get-profile-price/${profileSlug}`);
return response.data;
}
}
exports.ComputeManagerClient = ComputeManagerClient;
//# sourceMappingURL=client.js.map