@gentrace/core
Version:
Core Gentrace Node.JS library
100 lines (97 loc) • 4.26 kB
JavaScript
import { Configuration } from '../configuration.mjs';
import { V1Api } from '../api/v1-api.mjs';
import { V2Api } from '../api/v2-api.mjs';
import { V3Api } from '../api/v3-api.mjs';
import { getProcessEnv, setErrorInterceptor } from './utils.mjs';
var __awaiter = (undefined && undefined.__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());
});
};
let GENTRACE_API_KEY = "";
function getGentraceApiKey() {
return GENTRACE_API_KEY;
}
let GENTRACE_BASE_PATH = "";
function getGentraceBasePath() {
return GENTRACE_BASE_PATH;
}
let GENTRACE_BRANCH = "";
let GENTRACE_COMMIT = "";
let GENTRACE_SHOW_CONNECTION_ERRORS = "";
// @deprecated: use GENTRACE_RESULT_NAME instead
let GENTRACE_RUN_NAME = "";
let GENTRACE_RESULT_NAME = "";
let GENTRACE_ENVIRONMENT_NAME = "";
let globalGentraceConfig = null;
let globalGentraceApi = null;
let globalGentraceApiV2 = null;
let globalGentraceApiV3 = null;
let globalRequestBuffer = {};
let resetGlobalGentraceApi = () => {
globalGentraceConfig = null;
};
function init(values) {
const { apiKey, basePath, branch, commit, showConnectionErrors, runName, resultName, environmentName, } = values !== null && values !== void 0 ? values : {};
if (!apiKey && !getProcessEnv("GENTRACE_API_KEY")) {
throw new Error("Gentrace API key was provided neither by the `apiKey` param in the constructor nor by the `GENTRACE_API_KEY` env variable.");
}
GENTRACE_API_KEY = apiKey || getProcessEnv("GENTRACE_API_KEY");
GENTRACE_RUN_NAME = runName || getProcessEnv("GENTRACE_RUN_NAME");
GENTRACE_RESULT_NAME = resultName || getProcessEnv("GENTRACE_RESULT_NAME");
GENTRACE_ENVIRONMENT_NAME =
environmentName || getProcessEnv("GENTRACE_ENVIRONMENT_NAME");
GENTRACE_SHOW_CONNECTION_ERRORS =
showConnectionErrors || getProcessEnv("GENTRACE_SHOW_CONNECTION_ERRORS");
setErrorInterceptor();
if (basePath) {
try {
const url = new URL(basePath);
if (url.pathname.startsWith("/api")) {
}
else {
throw new Error('Gentrace base path must end in "/api".');
}
}
catch (err) {
throw new Error(`Invalid Gentrace base path (${basePath}): ${err.message}`);
}
GENTRACE_BASE_PATH = basePath;
}
globalGentraceConfig = new Configuration({
apiKey: GENTRACE_API_KEY,
basePath: GENTRACE_BASE_PATH,
});
globalGentraceApi = new V1Api(globalGentraceConfig);
globalGentraceApiV2 = new V2Api(globalGentraceConfig);
globalGentraceApiV3 = new V3Api(globalGentraceConfig);
if (branch) {
GENTRACE_BRANCH = branch;
}
if (commit) {
GENTRACE_COMMIT = commit;
}
}
function deinit() {
GENTRACE_API_KEY = "";
GENTRACE_BASE_PATH = "";
GENTRACE_BRANCH = "";
GENTRACE_COMMIT = "";
GENTRACE_SHOW_CONNECTION_ERRORS = "";
globalGentraceConfig = null;
globalGentraceApi = null;
globalGentraceApiV2 = null;
globalGentraceApiV3 = null;
globalRequestBuffer = {};
}
function flush() {
return __awaiter(this, void 0, void 0, function* () {
return (yield Promise.allSettled(Object.values(globalRequestBuffer))).every((result) => result.status === "fulfilled");
});
}
export { GENTRACE_API_KEY, GENTRACE_BASE_PATH, GENTRACE_BRANCH, GENTRACE_COMMIT, GENTRACE_ENVIRONMENT_NAME, GENTRACE_RESULT_NAME, GENTRACE_RUN_NAME, GENTRACE_SHOW_CONNECTION_ERRORS, deinit, flush, getGentraceApiKey, getGentraceBasePath, globalGentraceApi, globalGentraceApiV2, globalGentraceApiV3, globalGentraceConfig, globalRequestBuffer, init, resetGlobalGentraceApi };
//# sourceMappingURL=init.mjs.map