0.0.2 • Published 10 months ago

harblz v0.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

Har Blz - A Http Archive File parser

HAR stands for Http Archive File, as described in the W3C documentation HTTP Archive (HAR) format ↗.

Although the HAR document format has been deprecated, it is still widely used today in modern browsers and other software such as Charles, Fiddler, and Postman.

The purpose of creating this library is to make it easy to extract API data from HAR files for data analysis or to prepare data for mock servers when developing web clients. I hope it can help you too.

Install

npm install --save harblz

Usage

Get all json returned Entry

import { fromPath, HarWrapper, fromString } from "harbiz";

const har = fromPath(path.resolve(__dirname, "./sample-1.2.har"));
// or const har = fromString('{ "log": { ... } ');

const harWrapper = new HarWrapper(har);

const entires = harWrapper.entryWrapper.filterByMimeType("application/json");

// prepare data and launch a mock server

API

Load HAR object

// load from file
const har = fromPath(path.resolve(__dirname, "./sample-1.2.har"));

// load from json string
const har = fromString(
  fs.readFileSync(path.resolve(__dirname, "./sample-1.2.har"), {
    encoding: "utf-8",
  })
);

Exceptions

  • InvalidHarFormat: thrown when the content of the HAR file read or the HAR JSON String does not conform to the HAR document format.
  • UnsupportSpecVersion: thrown when the HAR document version format is not supported (currently only version 1.2 is supported).

Wrappers

Provides some wrappers that provide convenient utility functions based on the HAR Object.

HarWrapper

import { HarWrapper } from "harbiz";

// const har = fromString('...')
const harWrapper = new HarWrapper(har);
fieldtypedescription
versionstringThe version number of the HAR file
creatorCreatorInformation about the creator of the HAR file
browserBrowserUser Agent related information
pageWrapperPageWrapperPages wrapper, currently an empty implementation
entryWrapperEntryWrapperEntries wrapper

EntryWrapper

methodtypedescription
filterByHttpMethod(method: string): Entry[]Filter Entries by HTTP request method
filterByRequestHeader(headers: Record<string, string>): Entry[]Filter Entries by HTTP request headers
filterByResponseHeader(headers: Record<string, string>): Entry[]Filter Entries by HTTP response headers
filterByStatus(filterOrFilterFn: ((status: number) => boolean) | number): Entry[]Filter Entries by HTTP response status code
filterByMimeType(mineType: string): Entry[]Filter Entries by HTTP response mimeType
0.0.2

10 months ago

0.0.1

10 months ago