The Beam Node SDK gives web developers an easy way to interact with their Beam apps.
Installation
Install the package with npm
:
npm install @beamcloud/beam-js
…or using yarn
:
yarn add @beamcloud/beam-js
Importing
Import the package:
import beam from "@beamcloud/beam-js";
Then, initialize the Beam Client, passing your Beam Token as a parameter:
const client = await beam.init('YOUR_BEAM_TOKEN');
You can find your Beam Token in the API Keys section of the dashboard.
Usage
Deployments
list
Retrieves a list of all deployments.
const deployments = await client.deployments.list()
get
Fetches a deployment by ID.
const deployment = await client.deployments.get('DEPLOYMENT_ID');
delete
Deletes a deployment by ID.
await client.deployments.delete('DEPLOYMENT_ID');
refresh
Reloads the deployment data.
const deployment = await client.deployments.get('DEPLOYMENT_ID');
await deployment.refresh();
call
Makes an API request to the deployment.
await client.deployments.call('DEPLOYMENT_ID');
realtime
Opens a WebSocket connection for real-time updates.
const stream = deployment.realtime();
stream.on('data', (data) => {
console.log(data);
});
Here’s a more complete example:
import beam from "@beamcloud/beam-js";
const streamResponse = async () => {
const client = await beam.init(process.env.BEAM_TOKEN);
const deployment = await client.deployments.get({ id: process.env.BEAM_DEPLOYMENT_ID });
const connection = await deployment.realtime();
const payload = {
"event": "Echo this back",
}
connection.onmessage = (message) => {
console.log(`🎉 Response: ${message.data}`);
};
connection.send(JSON.stringify(payload));
setTimeout(() => {
connection.close();
}, 1000);
};
streamResponse();
Tasks
list
Retrieves a list of all tasks.
const tasks = await client.tasks.list();
get
Fetches a specific task by ID.
const task = await client.tasks.get('TASK_ID');
console.log(task.data);
delete
Deletes a task by ID.
await client.tasks.delete('TASK_ID');
cancel
Cancel a task.
const task = await client.tasks.get('TASK_ID');
await task.cancel();
refresh
Reloads the task data.
const task = await client.tasks.get('TASK_ID');
await task.refresh();