Node API

Getting started

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.

Managing projects and pages

Read about managing projects and pages with the Node API.

Starting an analysis

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.

Additional options

The Node module supports similar arguments to the CLI.

Building a particular commit

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
})

Customizing the url and HTTP headers

debugbear.pages.analyze(pageId, {
  url: "http://staging.com",
  customHeaders: {
    "X-Feature-Flags": "tags"
  }
})

Access build status and metrics

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.

Need other API features?

Let us know and we'll work with you to build one.


Still need help? Contact matt@debugbear.com for support.
© 2019 DebugBear Ltd