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

furmly-core

v1.0.3

Published

This is the backend processor for configurable dynamic tasks

Downloads

9

Readme

This is the core abstraction of furmly. It is divided in the following main concepts.

  • Process
  • Step
  • Processor
  • Form/Elements
  • Async Processors

Process

A process like the name implies is represents everything needed for a user to complete a set of steps. It has a number of predefined steps. Rules:-

  • A process is a sequence of steps an actor or actors take to achieve a business goal.

  • A process must be uniquely identifiable system wide.

  • There can be several steps in a process but there must be atleast one step.

  • A process can describe its required steps.

  • A process can be returned to when not completed.

  • Processess are created with a unique id,title,description and steps.

Step

A step like the name implies is a task the user must complete to proceed towards the final goal. There are two types of steps namely:-

  1. Client:- these steps present an interface the user can interact with. All client type steps contain forms.
  2. Offline:- these steps don't have an interface. They could be used to start offline tasks.

Steps also have two distinct modes:-

  1. default:- steps in this mode require a processing after a user submits a form.
  2. view:- steps in this mode do not require any processing, i.e a user cannot submit this kind of step/form.

Rules:-

  • Steps can either involve collecting input from a user or from another system generated event.

  • A step must be uniquely identifiable within a process.

  • Steps can have a chain of processors but the chain must have atleast one.

  • Steps can have a chain of post processors but no minimum is required.

  • Steps requiring user input must contain a form.

  • Steps are created with id ,type and processors.

  • A step can describe its form and processors.

  • Client Steps require a form.

  • A form can describe its elements properties and validators.

Processors

Processors are snippets of code that contain business logic used to process several tasks during the lifecycle of a process. When steps are completed and submitted ,processors are responsible for processing the user input.

  • Processors can modify the regular flow of steps.

  • Processors are uniquely identifiable system wide.

  • Processors can create entities

  • Processors can edit entities.

  • Processors can delete entities.

Elements/Form

A form is a collection of elements presented to a user. Elements describe the type of information required by the form/step. Elements can contain other elements.

  • A form must contain atleast one element.

  • An element can contain any number of validators.

  • Validators can either run on the clients machine or externally.