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

at-your-service

v0.3.1

Published

A developer tool for API observability on the browser. Generate OpenAPI specifications and code from network traffic

Downloads

17

Readme

MIT License

About the Project and Why

This tool is designed to help tackle problems that arise from a lack of awareness on API behaviour.

It records network requests under the hood using a service worker proxy. As the tool makes observations of network traffic over time, it learns the structure of the underlying API.

Features

  • Spec gen: autogenerate OpenAPI 3.1 specifications from network traffic
  • Code gen: convert network response bodies into code for 10+ languages including TypeScript, Python, and JSON Schema
  • API Observability: explore the network layer with enhanced tooling
  • Easy installation: designed to plug in and go with an existing application

Getting Started

at-your-service features a CLI tool that places its service worker file into a directory. You likely wish to place this in public or static. See more information here on common locations for static files.

The service worker must be served from the root of your site. Once this is installed run the start script in your application code.

  1. Install the npm package

    npm install -D at-your-service@latest
  2. Add service worker to your public, static, or otherwise root directory

    npx at-your-service@latest <directory>
  3. Run the start script in your application

    import { startAtYourService } from "at-your-service";
    
    startAtYourService();
  4. A button to open the drawer will be visible on your site

  5. You can view copied OpenAPI 3.1 specifications in editor-next.swagger.io. At the time of writing, you need to manually change the version from 3.1.0 to 3.0.0 after pasting the specification. Support for the new version of the specifcation is an ongoing process

How It Works

More information on the rationale, functionality, and architecture of the tool can be found here.

Contributing

A development environment exists in demo, which when built is the landing page for the library.

If you have a suggestion that would make this better, please fork the repo and create a pull request.

Limitations

The library creates specifications that are only as accurate as the underlying observations. If your application relies on a response body that has not been observed, then type information for it will not be available.

Overall the intent is to produce a best guess that reveals API behaviour. This will never be a replacement for proper documentation.

License

Distributed under the MIT License. See LICENSE for more information.