UNPKG

@deepgram/sdk

Version:

Isomorphic Javascript client for Deepgram

59 lines (50 loc) 1.69 kB
import { convertProtocolToWs } from "./helpers"; import { isBrowser, isBun, isNode, NODE_VERSION, BUN_VERSION, BROWSER_AGENT } from "./runtime"; import { version } from "./version"; import type { DefaultNamespaceOptions, DefaultClientOptions } from "./types"; const getAgent = () => { if (isNode()) { return `node/${NODE_VERSION}`; } else if (isBun()) { return `bun/${BUN_VERSION}`; } else if (isBrowser()) { return `javascript ${BROWSER_AGENT}`; } else { return `unknown`; } }; export const DEFAULT_HEADERS = { "Content-Type": `application/json`, "X-Client-Info": `@deepgram/sdk; ${isBrowser() ? "browser" : "server"}; v${version}`, "User-Agent": `@deepgram/sdk/${version} ${getAgent()}`, }; export const DEFAULT_URL = "https://api.deepgram.com"; export const DEFAULT_AGENT_URL = "wss://agent.deepgram.com"; export const DEFAULT_GLOBAL_OPTIONS: Partial<DefaultNamespaceOptions> = { fetch: { options: { url: DEFAULT_URL, headers: DEFAULT_HEADERS } }, websocket: { options: { url: convertProtocolToWs(DEFAULT_URL), _nodeOnlyHeaders: DEFAULT_HEADERS }, }, }; export const DEFAULT_AGENT_OPTIONS: Partial<DefaultNamespaceOptions> = { fetch: { options: { url: DEFAULT_URL, headers: DEFAULT_HEADERS } }, websocket: { options: { url: DEFAULT_AGENT_URL, _nodeOnlyHeaders: DEFAULT_HEADERS }, }, }; export const DEFAULT_OPTIONS: DefaultClientOptions = { global: DEFAULT_GLOBAL_OPTIONS, agent: DEFAULT_AGENT_OPTIONS, }; export enum SOCKET_STATES { connecting = 0, open = 1, closing = 2, closed = 3, } export enum CONNECTION_STATE { Connecting = "connecting", Open = "open", Closing = "closing", Closed = "closed", }