visualping-client
v1.0.2
Published
Visualping API wrapper for Node.js with TypeScript support
Maintainers
Readme
Visualping Client (TypeScript)
A lightweight, typed Node.js + TypeScript wrapper for the Visualping v2 API. No extra dependencies required.
This package provides a TypeScript-first SDK for interacting with Visualping jobs, users, and monitoring configuration.
API Reference: https://api.visualping.io/doc.html
Installation
npm i visualping-clientRequirements
Node.js >= 20 (uses built-in fetch)
No runtime dependencies :)
Setup
The client authenticates using your Visualping email and password. Ugly, I know.
This is obvious, but use environment variables to avoid hard-coding credentials.
Example
import {
JobMode,
OutputMode,
TargetDevice,
VisualpingClient,
} from "visualping-client";
async function main() {
const email = process.env.VISUALPING_EMAIL;
const password = process.env.VISUALPING_PASSWORD;
if (!email || !password) {
throw new Error(
"Missing VISUALPING_EMAIL or VISUALPING_PASSWORD environment variables"
);
}
const client = new VisualpingClient(email, password);
// Get user info
const me = await client.describeUser();
console.log("Logged in as:", me.emailAddress);
// Create a job
const job = await client.createJob({
url: "https://example.com",
mode: JobMode.TEXT,
active: true,
interval: "60",
trigger: "0.1",
target_device: TargetDevice.DESKTOP,
wait_time: 0,
});
console.log("Created job:", job);
// Fetch job IDs only
const jobResult = await client.getJobs({
mode: OutputMode.IDS_ONLY,
});
console.log("Job IDs:", jobResult.jobIds);
// Fetch all jobs filtered by mode
const jobs = await client.getAllJobs({
modeFilter: [JobMode.TEXT],
});
console.log("Filtered jobs:", jobs);
// Optional cleanup
for (const id of jobResult.jobIds) {
await client.deleteJob(id);
}
}
main().catch((error) => {
console.error("Error occurred:");
if (error instanceof Error) {
console.error(error.message);
console.error(error.stack);
} else {
console.error(error);
}
process.exit(1);
});
