Hoodie.js Global Share Plugin
Make selected objects publically accessible via hoodie.global store methods.
hoodie install global-share
The Global Share Plugin extends all promises returned by
with two additional functions:
// publish all my todoshoodiestorefindAll'task'publish// unpublish specific notehoodiestorefind'note' 'abc1234'unpublish
All objects marked as public are accessible (read-only) via the
// list all public taskshoodieglobalfindAll'task'thenshowAllPublicTasks// update list of tasks on changehoodieglobalon'task:change' handleTaskChange
add / remove own objects from the public global store
// publish / unpublish can be called on all promises// return by any hoodie.store method.promise = hoodiestoreaddtype attributespublishpromise = hoodiestorefindtype idpublishpromise = hoodiestorefindOrAddtype id attributespublishpromise = hoodiestorefindAll/* type */publishpromise = hoodiestoreupdatetype id changedAttributespublishpromise = hoodiestoreupdateAll/* type, */ changedAttributespublishpromise = hoodiestoreremovetype idpublishpromise = hoodiestoreremoveAll/* type */publish// it works the same on scoped storespromise = hoodiestoretypefindidunpublishpromise = hoodiestoretype idupdatechangedAttributespublish// publish / unpublish return own promises that only resolve// if the objects were published successfully on the serverpromisethenhandlePublishSuccess handleStoreOrPublishError;
access objects from / listen to changes in the public global store
// hoodie.global has all read-only methods from hoodie.store,// with the same footprintpromise = hoodieglobalfindtype idpromise = hoodieglobalfindAll/* type */// you can listen on changes as wellhoodieglobalon'add' handleNewObjecthoodieglobalon'task:change' handleChangedTaskhoodieglobalon'task:123:remove' handleTask123Removed
The plugin's worker
creates a new database
hoodie-plugin-global-share that all objects from all
user databases that are marked as public are replicated to.
.publish() on a store method in the frontend adds a
flag to the respecitve objects, that is used by the filtered replications from
user databases →
.unpublish() uses the
hoodie.task API internally to start
task with object types/IDs to be unpublished. The task gets picked up by the worker
which then removes all objects with the passed types/IDs from the
We love contributors <3 If you need any help getting started, please don't hesitate to get in touch at any time.
For Questions/Bug reports specific to the Global Share Plugin:
For more generic questions to Hoodie Architecture etc. https://github.com/hoodiehq/discussion/issues/new
If you want to send pull requests, please make sure to add according tests. Run tests with
Copyright 2012-2014 https://github.com/hoodiehq/ and other contributors
Licensed under the Apache License 2.0.