Ditto is the entry point for accessing Ditto-related functionality.
Initializes a new
sharedKey identity is only supported for Node environments,
using this to create a Ditto instance in the web browser will throw an
Identity for the new Ditto instance.
path corresponds to a real directory
on the file system (intermediate directories are created if needed). In the
path is used as an internal namespace into the backing storage
(in-memory at the moment, support for IndexedDB is in development).
Provides access to authentication methods for logging on to Ditto Cloud.
Configure a custom identifier for the current device.
When using observePeers(), each remote peer is
represented by a short UTF-8 "device name". By default this will be a
truncated version of the device's hostname. It does not need to be unique
among peers. Configure the device name before calling
startSync(). If it
is too long it may be truncated.
The (validated) identity this Ditto instance was initialized with.
true if a license token has been set, otherwise returns
true if sync has been started, returns
false if it has
been stopped. Returns
false if sync has never been started for this
The path this Ditto instance was initialized with, if no path was given at construction time, the default value is returned (see constructor).
The site ID that the instance of
Ditto is using as part of its identity.
Provides access to the SDK's store functionality.
Returns a string identifying the version of the Ditto SDK.
Registers an observer for info about Ditto peers in range of this device.
called immediately with the current state of peers in range and whenever that state changes. Then it will be invoked repeatedly when Ditto devices come and go, or the active connections to them change.
Register observer for changes of underlying transport conditions.
called when underlying transport conditions change with
condition and it's
Removes all sync metadata for any remote peers which aren't currently connected. This method shouldn't usually be called. Manually running garbage collection often will result in slower sync times. Ditto automatically runs a garbage a collection process in the background at optimal times.
Manually running garbage collection is typically only useful during testing if large amounts of data are being generated. Alternatively, if an entire data set is to be evicted and it's clear that maintaining this metadata isn't necessary, then garbage collection could be run after evicting the old data.
Only available in Node environments at the moment, no-op in the browser.
Ditto instance by setting a license token. You cannot sync
Ditto before you have activated it.
the license token to activate the
with. You can find yours on the Ditto portal (https://portal.ditto.live).
Starts the network transports. Ditto will connect to other devices.
By default Ditto will enable all peer-to-peer transport types. On Node,
this means Bluetooth, WiFi/LAN, and AWDL. The network configuration can be
setTransportConfig(). On the Web, only connecting via
Websockets is supported.
Stops all network transports.
You may continue to use the database locally but no data will sync to or from other devices.
Convenience method for updating the transport config. Creates a copy of the
current transport config, passes that copy to the
allowing it to mutate as needed, and sets that updated copy afterwards.