Skip to main content
Bruno supports CommonJS syntax require for importing libraries. ES Modules import/export are not supported at this time. Here’s an example demonstrating how to use the chai library in Bruno:
copy
const chai = require('chai');

const { expect } = chai;

function add(a, b) {
  return a + b;
}

const result = add(2, 3);

expect(result).to.equal(5);

console.log('Test passed!');
You can include this code in the pre-request script section of Bruno to test it out.

jsonwebtoken

jsonwebtoken lets you create signed JWTs with jwt.sign. In a Pre Request script you might sign only a sensitive field (here the token string), then put that JWT back on your payload and send it as JSON.
copy
const jwt = require('jsonwebtoken');

const payload = {
  name: 'usebruno',
  id: 100,
  token: 'abc1234'
};

const secret = 'your-secret';

// Sign only the token value (claims embedded in the JWT)
const signedToken = jwt.sign({ token: payload.token }, secret);

// Send the rest of the fields unchanged, with `token` replaced by the JWT
const updatedPayload = {
  ...payload,
  token: signedToken
};

req.setHeader('Content-Type', 'application/json');
req.setBody(updatedPayload);
Use a real secret from your environment or collection variables in practice and never commit secrets in scripts. Below is the list of inbuilt libraries supported by Bruno.
  • axios - Promise based HTTP client for the browser and node.js
  • atob - Turn base64-encoded ascii data back to binary.
  • btoa - Turn binary data to base64-encoded ascii.
  • chai - BDD/TDD assertion library for node.js and the browser.
  • moment - Parse, validate, manipulate, and display dates and times in JavaScript.
  • uuid - For the creation of RFC4122 UUIDs.
  • nanoid - A tiny, secure, URL-friendly, unique string ID generator for JavaScript.
  • crypto-js - JavaScript library of crypto standards.
  • tv4 - Tiny Validator for JSON Schema v4.
  • jsonwebtoken - An implementation of JSON Web Tokens.
To use below inbuilt libraries in Bruno, you must be in Developer Mode. When using Bruno CLI (v3.0.0+), pass the --sandbox=developer flag.
  • node-fetch - A light-weight module that brings Fetch API to Node.js.
  • lodash - A modern JavaScript utility library delivering modularity, performance & extras.
  • ajv - Ajv JSON schema validator.
  • cheerio - Library for parsing and manipulating HTML and XML.
  • xml2js - Simple XML to JavaScript object converter for Node.js.