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

capacitor

v0.5.6

Published

An implementation of facebook's flux architecture, great Scott!

Downloads

6,027

Readme

Introduction

WARNING: Still being documented.

Capacitor.js is a well tested implementation of facebook's flux architecture written in CoffeeScript, which aims to do the following things:

  • Be as close to the official definition of flux as possible, only making optimizations/features where there's too much boilerplate.
  • Be easy to use, even for beginners, which means it should be easy to do it right, hard to do it wrong.
    • An example is the ActionCreators, which is the only way to dispatch an action without going out of your way.
  • Have all stores be comprised of immutable data with immutable.js
  • Handle relationships between stores with ease, without the boilerplate
  • Be easy to extend, where extensions make sense.
  • Scale well when used in teams by heavily encouraging thought before code, and try to minize how many ways you can solve a single problem.
  • Feel great to use in CoffeeScript
  • Feel just as great to use in TypeScript/ES6
  • Support all the loaders, AMD/CommonJS/ES6/Globals whatever you need.

Features

  • The dispatcher is an implementation detail, you never interact with it manually.
  • Actions are class instances, no giant switch statements needed.
  • Stores listen for actions by using the action classes.
  • Four types of stores to model your data:
    • Store (generic state)
    • EntityStore (anything with an id)
    • ListStore (a list of entities)
    • IndexedListStore (a map from an entity id to a list of entity ids)
  • With these four stores you can model the following:
    • one to one (Entity/Store -> Entity)
    • one to many (Entity/Store -> List -> Entity)
    • many to many (Entity/Store -> IndexedList -> Entity)
  • ActionCreators dispatch actions.
  • Batch change events on stores within a dispatch iteration to simplify store interactions.

Features we'd like to add

  • [ ] Webpack Hot Loader
  • [ ] Chrome Devtools Extension(s)
  • [ ] State snapshots
  • [ ] Replayable action logs

Dependencies

  • lodash
  • immutable-js

NOTE: Upgrading to capacitor > 0.2.x from capacitor < 0.2.x

Stores now use immutable js for the data. The API is still the same but the data returned is now instances of immutable's classes. See https://github.com/facebook/immutable-js for usage. Unfortunately this completely breaks backwards compatibility.