To get started install the debugbear
Node module and generate an API key. You'll also need to find the ID of the page you want to analyze.
Learn more about getting started.
Read about managing projects and pages with the Node API.
Create a script.js
file like this:
const { DebugBear } = require("debugbear");
// TypeScript: import { DebugBear } from "debugbear"
const debugbear = new DebugBear(process.env.DEBUGBEAR_API_KEY);
const pageId = 185;
debugbear.pages.analyze(pageId).then((analysis) => {
analysis.waitForResult().then(() => {
console.log("Analysis complete, view results here: " + analysis.url);
});
});
Then run DEBUGBEAR_API_KEY=... node script.js
.
The Node module supports similar arguments to the CLI.
debugbear.pages.analyze(pageId, {
commitHash: "e2ba122",
buildTitle: "Add support for tags",
// infer additional details from the environment, for
// example the name of the current branch
inferBuildInfo: true,
});
debugbear.pages.analyze(pageId, {
url: "http://staging.com",
customHeaders: {
"X-Feature-Flags": "tags",
},
});
const analysis = await debugbear.pages.analyze(pageId, {
// Commit Hash is required to generate a build
commitHash: "abc123",
});
const res = await analysis.waitForResult();
console.log(res);
This might log something like this:
{
"url": "https://www.debugbear.com/viewResult/787431",
"hasFinished": true,
"build": {
"status": "failure",
"metrics": {
"analysis.date": "2020-02-14T19:06:42.201Z",
"performance.speedIndex": 1087,
"performance.interactive": 895,
"performance.firstContentfulPaint": 845,
"performance.firstMeaningfulPaint": 1301,
"performance.score": 0.96,
"accessibility.score": 0.55,
"bestPractices.score": 0.79,
"seo.score": 0.8,
"pwa.score": 0.54,
"pageWeight.total": 1666205,
"pageWeight.document": 5745,
"pageWeight.stylesheet": 4562,
"pageWeight.image": 1571870,
"pageWeight.script": 65597,
"pageWeight.font": 18431,
"pageWeight.ajax": 0,
"pageWeight.media": 0,
"pageWeight.other": 0,
"pageWeight.redirect": 0
}
}
}
Status will be neutral
if no performance budget has been set up, otherwise it will be either success
or failure
.
The getMetrics
function provides the same metrics as the on-page data export button, for example performance metrics, page weight, and Lighthouse scores.
let metrics = await debugbear.pages.getMetrics(pageId, {
from: new Date(2020, 4, 1),
to: new Date(2020, 5, 1),
});
console.log(metrics[0]["performance.score"]);
Call projects.getPageMetrics
to get the latest metrics for all your pages, similar to what you'd see on your project overview page on the DebugBear website.
const pageMetrics = await debugbear.projects.getPageMetrics(project.id);
pageMetrics.forEach((item) => {
console.log(`SEO score for ${item.page.name}: ${item.metrics["seo.score"]}`);
});
By default the most recent results will be reported by the API. If you need to load results for an older build you can pass in the before
parameter, so results after that date will be ignored.
const pageMetrics = await debugbear.projects.getPageMetrics(project.id, {
before: new Date(2020, 8, 4),
});
Let us know and we'll work with you to support your requirements.