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

@workehub/pipeline

v1.0.3

Published

Pipeline is a library for event processing and message queue management.

Downloads

16

Readme

Pipeline

Pipeline is a powerful library designed for event processing and message queue management. It offers robust features for efficiently handling events and managing message flow within your application.

With Pipeline, you can easily register events, customize event configurations, and process messages in a controlled and efficient manner. Whether you're dealing with high event volumes or aiming for reliable message processing, Pipeline provides the necessary tools to streamline your event-driven workflows.

Please note that Pipeline is currently in active development and refinement, with ongoing updates and improvements.

Features

  • Efficient event processing and message queuing for optimized performance.
  • Asynchronous message handling for concurrent processing of messages.
  • Convenient event registration and callback functionality for seamless event management.
  • Flexible persistence options, with support for LMDB storage. Future updates may include additional storage options for expanded capabilities.

Installation

npm install @workehub/pipeline

Usage

import { Pipeline } from "@workehub/pipeline";

// Create an instance of Pipeline with a local storage path
const pipeline = new Pipeline({ local: "./data" });

Register an event with a configuration

Attach a pipeline with options

pipeline.attach("pipelineName", { pollInterval: 1000 });

Register an event callback

pipeline.listen("pipelineName", async (message) => {
  // Process the message
  console.log("Received message:", message);
});

Add a message to the pipeline

await pipeline.add("pipelineName", "Your message here");
await pipeline.add("pipelineName", { email: "bob@email" }); // Automatic conversion to string (JSON)

API

The constructor of the Pipeline class accepts a configuration parameter, which should include the local storage path for the LMDB database.

Pipeline(config: PipelineConfig)

Attaches a pipeline to the Pipeline instance with the specified name and options.

attach(name: string, options: PipelineOpts): void

Defines a callback function to be executed when a message is processed for the specified pipeline.

listen(name: string, callback: (message: PipelineMessage) => Promise<void>): void

Adds a message to the end of the message queue for the specified pipeline.

add(name: string, value: string): Promise<void>