jupyterlab-slurm
Version:
A JupyterLab extension to interface with the Slurm workload manager.
55 lines • 2.64 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeRequest = void 0;
const services_1 = require("@jupyterlab/services");
const coreutils_1 = require("@jupyterlab/coreutils");
function makeRequest(request) {
return __awaiter(this, void 0, void 0, function* () {
const { route, method, query, body, beforeResponse, afterResponse } = request;
const settings = services_1.ServerConnection.makeSettings();
// Prepend command with the base URL to yield the final endpoint
const endpoint = coreutils_1.URLExt.join(settings.baseUrl, query ? `${route}${query}` : route);
const requestInit = {
method,
headers: {
// Add Jupyter authorization (XRSF) token to request header
'Authorization': 'token ' + coreutils_1.PageConfig.getToken(),
// Prevent it from enconding as plain-text UTF-8
'Content-Type': 'application/x-www-form-urlencoded'
},
};
if (body) {
if (typeof (body) == "string") {
requestInit.headers['Content-Type'] = 'application/x-www-form-urlencoded';
}
else if (body instanceof URLSearchParams) {
requestInit.headers['Content-Type'] = 'application/x-www-form-urlencoded';
}
requestInit.body = body;
}
try {
const args = beforeResponse ? beforeResponse() : undefined;
const response = yield services_1.ServerConnection.makeRequest(endpoint, requestInit, settings);
if (afterResponse) {
if (args)
return afterResponse(response, ...args);
else
return afterResponse(response);
}
}
catch (error) {
console.log(error);
}
});
}
exports.makeRequest = makeRequest;
//# sourceMappingURL=utils.js.map