Skip to main content

JavaScript API

For web apps the SDK is compiled to WebAssembly and exposed through a JavaScript wrapper that mirrors the same v3 call surface as the native languages.

Every Switchboard object — the SDK singleton ("switchboard"), engines, nodes, extensions — is identified by an object URI string. The same handful of calls drives every object.

note

The JavaScript bindings follow the cross-language v3 design described below, but exact binding names (camelCase variants, async vs sync return shape) may differ slightly. Always verify against the autogenerated JS reference for the current build.

Initialize SDK

Initializes the SDK with a config object. Resolves to the SDK's object URI.

await Switchboard.initialize(config);
await Switchboard.initialize({
appID: 'your-app-id',
appSecret: 'your-app-secret',
});

Deinitialize SDK

Releases all SDK-owned resources.

await Switchboard.deinitialize();

Create Engine

Creates an engine from a config object. Resolves to the engine's object ID.

const engineID = await Switchboard.createEngine(engineConfig);

Destroy Engine

Destroys an engine and everything it owns.

await Switchboard.destroyEngine(engineID);

Call Action

Invokes a named action on any Switchboard object.

await Switchboard.callAction(objectURI, actionName, params);
// Start the engine
await Switchboard.callAction(engineID, 'start');

// Load a file into a player node
await Switchboard.callAction('playerNode', 'load', {
audioFilePath: 'AudioFiles/speech-mono-48k.wav',
});

Set Value

Writes a value to a key on a Switchboard object.

await Switchboard.setValue(objectURI, key, value);
await Switchboard.setValue('playerNode', 'isLoopingEnabled', true);
await Switchboard.setValue('gainNode', 'gain', 0.5);

Get Value

Reads a value from a key on a Switchboard object.

const value = await Switchboard.getValue(objectURI, key);
const frames = await Switchboard.getValue('recorderNode', 'framesRecorded');

Add Event Listener

Subscribes to a named event. Returns a listener ID.

const listenerID = await Switchboard.addEventListener(objectURI, eventName, callback);
const listenerID = await Switchboard.addEventListener(
'playerNode',
'playbackProgress',
(eventData) => {
// ...
}
);

Remove Event Listener

Unsubscribes a previously registered listener.

await Switchboard.removeEventListener(objectURI, listenerID);

Full Reference

Open JavaScript API Reference — current binding names and method signatures.