npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rxws-recorder

v1.0.4

Published

rxws middleware to help read websocket requests and responses.

Downloads

10

Readme

rxws-recorder

rxws middleware for helping read websocket requests and responses.

Motivation

Browser devtool support for requests/responses over websockets is limited because the browser has no way of knowing which response corresponds to which request. Additionally, most of the common backends for rxws (such as sock.js) do not send pure JSON to the server, nor do they receive pure JSON, which means that browser devtools can only show the websocket frames as one big string (instead of an explorable json object).

Solution

rxws-recorder lets you explore the history of rxws requests, responses, and server pushes. It does this by exposing a global object, rxwsHistory (or the shorter version rh) on the window.

##Quickstart You must somehow include rxws-recorder into your app. Then you must call startRecording either on the global object or through the es6 module. This is usually done with:

import * as rxwsRecorder from 'rxws-recorder';
import rxws from 'rxws';

rxwsRecorder.startRecording(rxws);

Global Object API

####window.rh An array of request/response objects, ordered from most recent to least recent. Each object has the following schema:

// each object in the array looks like this
{
  resource: 'get.users', // a string
  request: {...}, // the request object
  response: {...}, // the response object
  statusCode: 200, // An integer representing the status code of the request
}

####window.rh.mostRecent Mostly equivalent to doing rh[0], but it handles not having any requests at all.

####window.rh.isRecording A boolean value that indicates whether rxws-recorder is recording all the request/responses. Instead of changing this value directly, you should call window.rh.startRecording or window.rh.stopRecording. Otherwise things will not work.

####window.rh.startRecording(rxws) Call this function when you want rxws-recorder to start recording all websocket requests.

Parameters

  • rxws: the value that is the default export of the rxws npm package.

####window.rh.stopRecording() Call this function when you want rxws-recorder to stop recording all websocket requests. Already recorded requests will be preserved.

####window.rh.MAX_REQUESTS_RECORDED An integer that represents the maximum number of objects to keep in the window.rh array. Defaults to 50. This value can be mutated directly by the user.

####window.rh.clear() A function that clears out all request/response objects in the window.rh array. Does not change window.rh.isRecording.

###ES6 Module API rxws-recorder doesn't export a default export, but does export several named functions

####startRecording(rxws) See the global equivalent above.

####stopRecording() See the global equivalent above.

####setMaxRequestsRecorded(max) Call this only after you have called startRecording.

Parameters

  • max: a positive integer that represents the maximum number of requests that will be in memory at any time.

####clear() See the global equivalent above.