assemblyai
Version:
The AssemblyAI JavaScript SDK provides an easy-to-use interface for interacting with the AssemblyAI API, which supports async and real-time transcription, as well as the latest LeMUR models.
52 lines (45 loc) • 1.34 kB
text/typescript
import { UserAgent } from "../types";
export const buildUserAgent = (userAgent: UserAgent | false) =>
defaultUserAgentString +
(userAgent === false
? ""
: " AssemblyAI/1.0 (" +
Object.entries({ ...defaultUserAgent, ...userAgent })
.map(([key, item]) =>
item ? `${key}=${item.name}/${item.version}` : "",
)
.join(" ") +
")");
let defaultUserAgentString = "";
if (typeof navigator !== "undefined" && navigator.userAgent) {
defaultUserAgentString += navigator.userAgent;
}
const defaultUserAgent: UserAgent = {
sdk: { name: "JavaScript", version: "__SDK_VERSION__" },
};
if (typeof process !== "undefined") {
if (process.versions.node && defaultUserAgentString.indexOf("Node") === -1) {
defaultUserAgent.runtime_env = {
name: "Node",
version: process.versions.node,
};
}
if (process.versions.bun && defaultUserAgentString.indexOf("Bun") === -1) {
defaultUserAgent.runtime_env = {
name: "Bun",
version: process.versions.bun,
};
}
}
declare const Deno:
| {
version: {
deno: string;
};
}
| undefined;
if (typeof Deno !== "undefined") {
if (process.versions.bun && defaultUserAgentString.indexOf("Deno") === -1) {
defaultUserAgent.runtime_env = { name: "Deno", version: Deno.version.deno };
}
}