1.0.7 • Published 8 years ago
torrent-store v1.0.7
Torrent store
Scalable, reduce-able & 'state' based store for (but not limited to) ReactJS, with node EventEmitter api.
export default class Store extends EventEmitter{
/**
* Map all nammed stores in {keys} to the {object}'s state
* Hook componentWillUnmount (for react comp) or destroy to unBind them automatically
* @static
* @param object {React.Component|Store|...} target state aware object
* @param keys {Array} Ex : ["session", "otherStaticNamedStore:key", store.as('anotherKey')]
*/
static map( object, keys ) {...}
/**
* Constructor, will build a torrent store/reducer/remapper
*
* (state, keys, reducer, name)
* (keys, reducer, name)
* (keys, name)
* (state, name)
*
* @param state {object} initial state
* @param keys {Array} (passed to Store::map) Ex : ["session", "otherNamedStore:key", otherStore.as("otherKey")]
* @param reducer {function} reducing / remapping fn
* @param name {String} static name of the store
*/
constructor() {...}
/**
* Apply reduce/remap on the private state & push the resulting "public" state to followers
* @param cb
*/
push( cb ) {...}
/**
* Pull stores in the private state
* @param stores {Array} (passed to Store::map) Ex : ["session", "otherNamedStore:key", otherStore.as("otherKey")]
*/
pull( stores ) {...}
/**
* Update the current private state & push it once the store is stable
* @param pState
* @param cb
*/
setState( pState, cb ) {...}
/**
* Replace the current private state & push it once the store is stable
* @param pState
* @param cb
*/
replaceState( pState, cb ) {...}
/**
* Overridable reducer / remapper (will call the constructor's reducer fn if there)
* @param privateState
* @param lastPublicState
* @returns {*}
*/
reduce( privateState, lastPublicState ) {...}
/**
* Un bind this store off the given component-key
* @param obj
* @param key
* @returns {Array.<*>}
*/
unBind( obj, key ) {...}
/**
* Bind this store changes to the given component-key
* @param obj {React.Component|Store|function)
* @param key {string} optional key where to map the public state
*/
bind( obj, key ) {...}
/**
* get a store-key pair for Store::map
* @param {string} name
* @returns {{store: Store, name: *}}
*/
as( name ) {...}
destroy() {...}
}