// @ts-check import https from "https"; import http from "http"; type GrabHostNamesReturn = { host: string; port: number | string; scheme: typeof http | typeof https; user_id: string | number; }; type Param = { userId?: string | number; env?: { [k: string]: string }; }; /** * # Grab Names For Query */ export default function grabHostNames(param?: Param): GrabHostNamesReturn { const finalEnv = param?.env ? { ...process.env, ...param.env } : process.env; const scheme = finalEnv["DSQL_HTTP_SCHEME"]; const localHost = finalEnv["DSQL_LOCAL_HOST"]; const localHostPort = finalEnv["DSQL_LOCAL_HOST_PORT"]; const remoteHost = finalEnv["DSQL_API_REMOTE_HOST"]?.match(/.*\..*/) ? finalEnv["DSQL_API_REMOTE_HOST"] : undefined; const remoteHostPort = finalEnv["DSQL_API_REMOTE_HOST_PORT"]?.match(/./) ? finalEnv["DSQL_API_REMOTE_HOST_PORT"] : undefined; return { host: remoteHost || localHost || "datasquirel.com", port: remoteHostPort || localHostPort || 443, scheme: scheme?.match(/^http$/i) ? http : https, user_id: param?.userId || String(finalEnv["DSQL_API_USER_ID"] || 0), }; }