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

outstanding-barnacle

v6.6.1

Published

Task model, which is modified through events only.

Downloads

59

Readme

outstanding-barnacle aka domain model for a Heijunka board

You can either use the model as it is, or use the objectEvent parts to generate and process events for modifying the model. The latter also serve as message to be sent to other apps, which can then keep their model in sync with yours.

Model

Consists of state model, projects and kanban cards. Together, they form a Heijunka board. The model is immutable. Hence, any modification leaves the original board untouched and returns a modified model.

State model

Defaults to Kanban model at the moment (Backlog - Doing - Done). Cannot be changed at the moment. In the end, the state model will require

  • exactly one initial state exists,
  • a final state can be reached from each state,
  • each state (besides the initial state) has to have at least predecessor.

The states are the horizontal division of the overall board.

Project (aka swimlanes)

Just a name. The projects divide the board vertically.

Kanban card

Right now, the kanban card only consists of a name. Each kanban card is always associated with the same project. Furthermore, it contains it state history, i.e. when it was closed in a state and when it was pulled to the next state.

Events

The model is constructed and updated by events. As events may arrive out-of-order, each modification of the model requires the date when it happened. This enables the model to process events in the correct order.

As a consequence, any linked objects may not be present. For example, the project referenced by a kanban card is not yet available. Hence, the model does not validate whether referenced objects exist. However, the model rejects any modification, if the object is not yet present. This way, no events are lost.

Type objectEventFactory lets you generate events for the various model modifications. Type objectEventCommandProcessor can process those events and takes care of sending events to the model when it no longer rejects them. Moreover, it stores the model for later usage.