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

@strange-bytes/waiter

v1.0.7

Published

A simple module that enables you to perform and handle requests among your apps on the browser

Downloads

4

Readme

🧭 Overview

It allows micro-frontends to handle requests and responses, simplifying application flow and data exchange between components.

🚀 Features

  • Dead simple: Handles requests and responses with a simple interface, simplifying application flow and data exchange between components.
  • Controller-based: Organizes requests using controllers for better manageability.
  • Promise-based API: Facilitates async programming with promises.
  • Lightweight: Is a lightweight library with no dependencies, making it easy to integrate into your project.
  • TypeScript Support: Is written in TypeScript and provides type definitions out of the box.

⚙️ Installation

NPM

npm i @strange-bytes/waiter

Yarn

yarn add @strange-bytes/waiter

PNPM

pnpm add @strange-bytes/waiter

🧩 Usage

To use Waiter, you need to import it into your project:

// ES6
import Waiter from 'waiter';
// CommonJS
const Waiter = require('waiter');

Then you can create a new instance of Waiter to add controllers and handle requests:

// App A
const waiter = new Waiter();

waiter.createController('fetchUserState', () => {
  const { user } = userStore();
  return user;
});
// App B
const waiter = new Waiter();

const user = await waiter.request('fetchUserState');

📖 API

constructor(options)

Creates an instance of Waiter. You can optionally specify a custom namespace and output prefix.

  • options: Object with optional properties:
    • namespace: The namespace to use for the Waiter configuration. Defaults to __WAITER_CONFIG_COMMON__.
    • outputPrefix: The prefix to use for output messages. Defaults to '[Waiter]'.

createController(endpoint, callback)

Registers a new controller that handles requests to a specific endpoint.

  • endpoint: string - The name of the endpoint.
  • callback: Function - The function to execute when the endpoint is called. It should return the response.

removeController(endpointName)

Removes a previously registered controller.

  • endpointName: string - The name of the endpoint to remove.

request(endpointName, payload, options)

Sends a request to a specific endpoint and returns a promise that resolves with the response.

  • endpointName: string - The name of the endpoint to send the request to.
  • payload: any - The payload to send with the request.
  • options: Object with optional properties:
    • timeout: number - Optional timeout in milliseconds. Defaults to 1000ms.

config

Provides access to the current Waiter configuration. This is a read-only property.

🤝 Contributing

We welcome contributions! Feel free to open an issue or submit a pull request from your fork if you have any ideas or suggestions.

License

This project is licensed under the ISC License - see the LICENSE file for details.