Defining a module

A data module is just a JavaScript object containing a module name and a builder function.

The builder function receives two base clients when loaded: one for private data stored in /my-module-name/ and one for public data stored in /public/my-module-name/. It must return an object, defining the properties and functions to be used in the app as exports:

var Bookmarks = { name: 'bookmarks', builder: function(privateClient, publicClient) {
  return {
    exports: {
     addBookmark: function() {}

You can then load it into your RemoteStorage instance either on initialization, or later using the addModule() function:

const remoteStorage = new RemoteStorage({ modules: [ Bookmarks ] });

// or later:


It will then be available on the instance as its module name, allowing you to call the functions and properties that the module exports: