UNPKG

@tragedy-labs/sprite

Version:

A TypeScript driver for ArcadeDB

54 lines 1.69 kB
import { SpriteHeaders } from '../rest/SpriteHeaders.js'; export function isNewSession(parameters) { if (Object.hasOwn(parameters, 'address') && Object.hasOwn(parameters, 'username') && Object.hasOwn(parameters, 'password')) { return true; } else { return false; } } /** * Base class for handling common session functionality. */ class Session { address; headers; endpoints = {}; constructor(params) { if (isNewSession(params)) { const { username, address, password } = params; // remove trailing slash from the address this.address = address.replace(/\/$/, ''); this.headers = SpriteHeaders.initialize(username, password); } else { const { session } = params; this.address = session.address; this.headers = session.headers; } } /** * Builds the endpoints for the session. * @param routes - The routes to build endpoints for. * @param prefix - The prefix for the endpoints. * @param suffix - The optional suffix for the endpoints. * @returns A record of the session's endpoints. */ buildEndPoints(routes, suffix) { const endpoints = {}; const prefix = `${this.address}/api/v1`; Object.values(routes).forEach((route) => { endpoints[route] = suffix ? `${prefix}/${route}/${suffix}` : `${prefix}/${route}`; }); if (suffix) { endpoints.server = `${prefix}/${'server'}`; } return endpoints; } } export { Session }; //# sourceMappingURL=Session.js.map