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

fluxxor-protected-store

v0.0.1

Published

Small utility to help generate stores in Fluxxor with support for enhancements like private methods

Downloads

7

Readme

fluxxor-protected-store

Small utility to help generate stores in Fluxxor with support for enhancements like private methods.

Very quick and dirty. No idea if it breaks under certain conditions, works for me so far. You probably shouldn't use this.

Usage

npm install fluxxor-protected-store

Then create your store just like you would with Fluxxor, with a couple changes. Here's an annotated example:

var fluxxor = require('fluxxor'),
    protectedStore = require('fluxxor-protected-store');

module.exports = fluxxor.createStore(protectedStore({
    
    // Only functions are allowed under the public key, and these are the only methods exposed by store
    // instance later. This forces you to write accessor methods for all of your data, which is a good
    // limitation. The context (this) of these methods is forced to the hidden 'private' store which allows
    // the methods to access the private members you create below.
    public: {
        isLoading: function () {
            return !!this.loading;
        },
        getErrors: function () {
            return this.errors;
        }
    },
    
    // Since the initialize function is treated as special by fluxxor (probably a good idea), this function
    // is also exposed to fluxxor if it is defined. This is a good place to initialize your private member
    // variables.
    initialize: function () {
        this.data = null;
        this.loading = false;
        this.errors = [];
    },
    
    // This API may need to change in the future and is probably the worst part of this library at the
    // moment. This function is the only place you can bind actions to the store, for better or for worse. It
    // is invoked once before initialization and an Object should be returned that determines what actions
    // will be bound to the store. The keys are the action names, and the values must be action handler
    // functions. I recommend using private functions as handlers.
    bindActions: function () {
        return {
            LOAD_DATA: this.loadData
        };
    },
    
    // This is an example of a private method. No one can access this method except other methods defined in
    // this spec.
    loadData: function(data) {
        this.data = data;
    }
}));

Dependencies

There are none. It seems like fluxxor should be a dependency, but this lib will work just fine with any other library that creates stores like fluxxor does.