Docs/Guides/JavaScript client
JavaScript client
Drop-in SDK for Node and modern browsers. Same shape as the REST API, plus an event-based wrapper around the WebSocket stream.
Install
shell
npm install @varmir/sdkThe SDK ships with TypeScript types out of the box and zero runtime dependencies.
Batch
batch.ts
import { Varmir } from "@varmir/sdk";
const client = new Varmir({ apiKey: process.env.VARMIR_KEY });
const res = await client.transcribe({
audio: fs.readFileSync("sample.wav"),
translateTo: "uk",
});
console.log(res.text);
console.log(res.translation?.text);Streaming
client.stream() returns an EventEmitter-compatible handle. Pipe raw PCM in, listen for partial / final / translation events.
stream.ts
const session = client.stream({
sampleRate: 16000,
translateTo: "uk",
});
session.on("partial", ({ text }) => render(text));
session.on("final", ({ text }) => commit(text));
session.on("translation", ({ text }) => renderTranslation(text));
// Pipe a Web Audio MediaStream into it
micFrames.pipe(session);