@sap_oss/wdio-qmate-service
Version:
[](https://api.reuse.software/info/github.com/SAP/wdio-qmate-service)[](http
113 lines • 3.86 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUserId = getUserId;
const os = __importStar(require("os"));
const path_1 = __importDefault(require("path"));
const node_localstorage_1 = require("node-localstorage");
const undici_1 = require("undici");
const constants_1 = require("./constants");
async function getUserId() {
if (!isLocalStorageAvailable()) {
console.log("Cannot retrieve user ID.");
return null;
}
if (isUserIdStored()) {
return getUserIdFromStore();
}
else {
const userId = await retrieveNewUserIdFromServer();
if (userId !== null) {
saveUserIdToStore(userId);
}
return userId;
}
}
function isLocalStorageAvailable() {
try {
getLocalStorage();
return true;
}
catch (e) {
console.log("LocalStorage is not available: ", e.message);
return false;
}
}
function isUserIdStored() {
return getLocalStorage().getItem("UserId") !== null;
}
function getUserIdFromStore() {
return getLocalStorage().getItem("UserId");
}
async function retrieveNewUserIdFromServer() {
try {
return await fetchNewUserIdFromServer();
}
catch (error) {
console.log("Error while fetching user ID: ", error.message);
return null;
}
}
function saveUserIdToStore(userId) {
getLocalStorage().setItem("UserId", userId);
}
let localStorageInstance = null;
function getLocalStorage() {
localStorageInstance ??= new node_localstorage_1.LocalStorage(path_1.default.join(os.homedir(), '.qmate-userId'));
return localStorageInstance;
}
async function fetchNewUserIdFromServer() {
const response = await fetchNewUserResponse();
return await extractUserIdFromResponse(response);
}
async function fetchNewUserResponse() {
return (0, undici_1.fetch)(`${constants_1.STATS_SERVER_URL}/api/user`, {
method: "POST",
dispatcher: new undici_1.Agent({})
});
}
async function extractUserIdFromResponse(response) {
if (!response.ok) {
console.log(`Failed to create Qmate Stats User: ${response.status} ${response.statusText}`);
return null;
}
const responseText = await response.text();
const responseData = JSON.parse(responseText);
return responseData.id;
}
//# sourceMappingURL=getUserId.js.map